innerHTML不能与JS中的classname一起使用

时间:2012-06-01 05:55:03

标签: javascript innerhtml

我的下拉列表选择特定值 -

<select name="category" id="category" onChange="showDiv(this.value);" >
    <option value="">Select This</option>
    <option value="1">Nokia</option>
    <option value="2">Samsung</option>
    <option value="3">BlackBerry</option>
    </select>

这是我想要显示文字的div

  

<span class="catlink"> </span>

这是我的JS功能 -

    function showDiv( discselect )
    {

    if( discselect === 1)
    {
    alert(discselect); // This is alerting fine
    document.getElementsByClassName("catlink").innerHTML = "aaaaaaqwerty"; // Not working
    }

}

让我知道为什么这不起作用,我做错了什么?

2 个答案:

答案 0 :(得分:14)

document.getElementsByClassName("catlink")在网页中选择所有元素数组,因此您必须使用 [0]

 function showDiv( discselect ) 
 { 

 if( discselect === 1) 
 { 
 alert(discselect); // This is alerting fine 
 document.getElementsByClassName("catlink")[0].innerHTML = "aaaaaaqwerty"; // Now working 
 } 
 }

答案 1 :(得分:4)

使用nodeList创建getElementsByClassName(特殊的节点数组)。或者,您可以使用document.querySelector,它返回带有className .catlink的第一个元素:

function showDiv( discselect ) {
    if( discselect === 1)    {
      document.querySelector(".catlink").innerHTML = "aaaaaaqwerty";
    }
}