【问题标题】:how do i get multiple id's of a particular class? [closed]我如何获得特定类的多个 id? [关闭]
【发布时间】:2012-10-22 22:46:50
【问题描述】:

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

HTML:

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

Javascript:

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

例如

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

我该怎么做?

【问题讨论】:

  • 它不返回一个ID,它返回一个元素。

标签: javascript html web-applications


【解决方案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: 
            //?
    }
}

【讨论】:

  • 这个答案几乎涵盖了它。
  • 它在语句 document.getElementsByClassName(class) 上给了我语法错误
  • @user1774034 我已经编辑了我的答案:class 是保留字(以备将来使用),我已将其更改为 classStr。改变变量名,你应该没事。请注意,就第二个循环而言(带有switch 语句的那个​​)我假设数组animatorpadsIds 包含对DOM 元素的引用,而不是字符串
  • @EliasVanOotegem 它可以工作,但只有一个问题只有最后一条语句执行,例如 case 'pong': //do something else with animateripadsIds[i] break;它总是执行这个语句或最后一种情况,除了默认值。
  • 听起来你手头有一个失败:每个case 块必须以break; 语句或return 语句结尾,如果不是以下所有语句案例也将被执行,直到遇到break 或返回。
【解决方案2】:

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

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

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

如果你使用 getElementById。

如果你想在类中选择元素,你不应该使用 document.getElementById。

【讨论】:

  • 我已经编辑了我的问题。看看它是否仍然错误。谢谢
【解决方案3】:

document.getElementById

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

语法

element = document.getElementById(id);

在哪里

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

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

.

【讨论】:

    【解决方案4】:

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

    【讨论】:

    • 课程相同,但我使用了 2 个不同的 id,例如
      还是错了吗?
    • 您想获取所有具有“animateripad”类的 id 吗?那时你把我们都弄糊涂了,你不要用 getElementByID 那样做,因为那是通过 ID 获取元素,而不是类。
    • 我怎样才能做到现在你明白我想说什么了。
    【解决方案5】:

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

    【讨论】:

    • 课程相同,但我使用了 2 个不同的 id,例如
      还是错了吗?
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签