这就是我现在正在做的事情。
HTML:
<div class="animateripad" id="ipad">
<div class="animateripad" id="pong">
Javascript:
我正在使用“document.getElementById”,但它只返回一个 id。我想获取两个 id,然后在 if 条件下使用它们
例如
if (id=="ipad")
{
do something.
}
我怎样才能做到这一点?
这就是我现在正在做的事情。
HTML:
<div class="animateripad" id="ipad">
<div class="animateripad" id="pong">
Javascript:
我正在使用“document.getElementById”,但它只返回一个 id。我想获取两个 id,然后在 if 条件下使用它们
例如
if (id=="ipad")
{
do something.
}
我怎样才能做到这一点?
HTML 中不应该有具有相同 id 的元素。这是您应该使用类的地方。它不是有效的 HTML
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:
//?
}
}
Id 是独一无二的,因此拥有两个相同的 DOM 元素是错误的。您应该改用“类”,它在语义上是正确的,您可以选择多个。
编辑:document.getElementById 返回一个 Dom 元素。所以你应该这样做:
var ping = document.getElementById('ping');
var pong = document.getElementById('pong');
如果您使用 getElementById。
如果要在类中选择元素,则不应使用 document.getElementById。
ID 应该唯一标识一个元素,因此您不应该在一个元素上有两个 id。
document.getElementById
通过其 ID 返回对元素的引用。
句法
element = document.getElementById(id);
在哪里
element
是对 Element 对象的引用,如果具有指定 ID 的元素不在文档中,则为 null。
id
是一个区分大小写的字符串,表示正在查找的元素的唯一 ID
.