jsFiddle document.getElementById在iFrame中

时间:2014-03-11 16:57:40

标签: javascript html iframe jsfiddle

我知道jsFiddle会在iFrame中显示它的结果。我正在参加一个JS课程,根据我的导师," getElementById"是所有JS中使用最多的函数。

那么为什么没有" getElementById"在jsFiddle工作:

document.getElementById("myH1")

...然而

document.getElementsByTagName("H1")

有效!

请看我的小提琴示例:

http://jsfiddle.net/uM9t4/

2 个答案:

答案 0 :(得分:2)

document.getElementById("myH1")确实有用。

我认为你要做的是将类的属性从“再见”改为“否”,这是行不通的。你正在上课并正确地改变它,但它只是一个字符串。然后,您必须将其重新分配给class属性。

document.getElementById("myH1").setAttribute('class', document.getElementById("myH1").getAttribute("class").replace("bye","NO"));

或者,将元素存储在变量中:

var myH1 = document.getElementById("myH1");
myH1.setAttribute('class', myH1.getAttribute('class').replace('bye', 'NO'));

答案 1 :(得分:1)

它确实如此,它只是你对如何替换工作的思考是错误的,它没有进行内联更改它返回更改的字符串,如果它没有工作你会得到一个

  

无法调用null

的方法'getAttribute'

document.getElementById("myH1").getAttribute("class").replace("bye","NO");

应该是

var change = document.getElementById("myH1").getAttribute("class").replace("bye","NO");
document.getElementById("myH1").setAttribute("class",change);

JSFiddle