我知道jsFiddle会在iFrame中显示它的结果。我正在参加一个JS课程,根据我的导师," getElementById"是所有JS中使用最多的函数。
那么为什么没有" getElementById"在jsFiddle工作:
document.getElementById("myH1")
...然而
document.getElementsByTagName("H1")
有效!
请看我的小提琴示例:
答案 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);