我有以下javascript代码:
b = document.getElementsByClassName('name1');
c = document.getElementsByClassName('name2');
if (b.length != 0) {
document.getElementByTagName('body')[0].innerHTML = b[0].innerHTML
else if (c.length != 0) {
document.getElementByTagName('body')[0].innerHTML = c[0].innerHTML
}
else document.getElementByTagName('body')[0].innerHTML = 'error';
但我没有得到想要的渲染。即使存在具有类名name1和name2的div,整个页面也会呈现。
我做错了什么?
答案 0 :(得分:3)
}
声明中的结束if
括号; getElementByTagName
方法; document.body
。这是一个更正确的代码:
var b = document.getElementsByClassName("name1"),
c = document.getElementsByClassName("name2");
if (b.length > 0) {
document.body.innerHTML = b[0].innerHTML;
} else if (c.length > 0) {
document.body.innerHTML = c[0].innerHTML;
} else {
document.body.innerHTML = "error";
}
此外,我不建议您更改.innerHTML
属性,使用.appendChild()
方法效率更高,即:
document.body.appendChild(document.createTextNode("error"));
答案 1 :(得分:1)
您使用的是getElementByTagName而不是getElementsByTagName。这是更新的脚本。
b = document.getElementsByClassName('name1');
c = document.getElementsByClassName('name2');
if (b.length != 0) {
document.getElementsByTagName('body')[0].innerHTML = b[0].innerHTML;
else if (c.length != 0) {
document.getElementsByTagName('body')[0].innerHTML = c[0].innerHTML;
}
else document.getElementsByTagName('body')[0].innerHTML = 'error';
}