我如何获得特定类的多个id?

时间:2012-11-02 09:23:43

标签: javascript html web-applications

这就是我现在正在做的事情。

HTML:

 <div class="animateripad" id="ipad">
 <div class="animateripad" id="pong">

使用Javascript:

我正在使用“document.getElementById”但它只返回一个id。我想获得两个ID,然后在条件

时使用它们

例如

if (id=="ipad")
{
do something.
}

我该怎么做?

5 个答案:

答案 0 :(得分:1)

HTML中不应该有相同ID的元素。这是您应该使用类的地方。它无效HTML

答案 1 :(得分:1)

Id是一个独特的东西,所以有两个DOM元素与我相同是错误的。您应该使用“class”,它在语义上是正确的,您可以选择几个。

编辑: document.getElementById返回一个Dom元素。所以你应该这样做:

var ping = document.getElementById('ping');
var pong = document.getElementById('pong');

如果您使用getElementById。

如果要在课堂上选择元素,则不应使用document.getElementById。

答案 2 :(得分:1)

如果要获取具有特定类的所有元素,则不应使用getElementById。使用getElementsByClassName

function getIdsForClass(classStr)
{
   var i, all = document.getElementsByClassName(classStr),ids = [];
   for(i=0;i<all.length;i++)
   {
       ids.push(all[i].id);//<-- push id as a string
       //or
       ids.push(all[i]);//<-- push reference to dom element
   }
   return ids;
}
var animateripadIds = getIdsForClass('animateripad');
//if you used ids.push(all[i].id);
animateripadIds[0];//<-- ipad
//if you pushed all[i]
animateripadIds[0].id;//<-- ipad

如果你想全部对待它们,取决于id:

for (var i=0;i<animateripadsIds.length;i++)
{
    switch(animateripadsIds[i].id)
    {
        case 'ipad':
            //do something with animateripadsIds[i]
        break;
        case 'pong':
            //do something else with animateripadsIds[i]
        break;
        case undefined:
            //do nothing?
        break;
        default: 
            //?
    }
}

答案 3 :(得分:0)

ID应该唯一标识一个元素,因此你不应该在一个元素上有两个id。

答案 4 :(得分:0)

<强>的document.getElementById

通过其ID返回对元素的引用。

<强>语法

element = document.getElementById(id);

,其中

element是对Element对象的引用,如果具有指定ID的元素不在文档中,则为null。

id是一个区分大小写的字符串,表示要搜索的元素的唯一ID