获取GetElementsByCassName中元素数的Javascript

获取GetElementsByCassName中元素数的Javascript,javascript,Javascript,我有以下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.getEleme

我有以下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,也会呈现整个页面

我做错了什么

  • 您跳过了
    if
    语句中的结束
    }
    括号
  • 本机JavaScript中没有
    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"));
    
  • 您跳过了
    if
    语句中的结束
    }
    括号
  • 本机JavaScript中没有
    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"));
    

    您使用的是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';
    }
    

    您使用的是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';
    }
    

    至少您跳过了
    if
    语句中的结束
    }
    括号。然后,在本机JavaScript中没有
    getElementByTagName
    方法。它是getElementsByTagName(复数)@segfult类
    name1
    name2
    的页面中是否有多个div?此代码有几个语法错误。@rahulmaindargi,至少您跳过了
    if
    语句中的结束
    }
    括号。然后,在本机JavaScript中没有
    getElementByTagName
    方法。它是getElementsByTagName(复数元素)@SegFault在页面中是否有多个div具有类
    name1
    name2
    ?此代码有多个语法错误。@rahulmaindargi,没有只有一个元素具有这些类名