-5

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

HTML:

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

Javascript:

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

例如

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

我怎样才能做到这一点?

4

5 回答 5

1

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

于 2012-11-02T09:25:15.600 回答
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: 
            //?
    }
}
于 2012-11-02T09:33:10.483 回答
1

Id 是独一无二的,因此拥有两个相同的 DOM 元素是错误的。您应该改用“类”,它在语义上是正确的,您可以选择多个。

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

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

如果您使用 getElementById。

如果要在类中选择元素,则不应使用 document.getElementById。

于 2012-11-02T09:28:40.917 回答
0

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

于 2012-11-02T09:25:24.297 回答
0

document.getElementById

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

句法

element = document.getElementById(id);

在哪里

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

id是一个区分大小写的字符串,表示正在查找的元素的唯一 ID

.

于 2012-11-02T09:34:37.117 回答