-5

これは私が今していることです。

HTML:

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

Javascript:

「document.getElementById」を使用していますが、1 つの ID しか返されません。両方の ID を取得して、if 条件で使用したい

例えば

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

これどうやってするの?

4

5 に答える 5

1

HTML 内に同じ ID を持つ要素があってはなりません。これは、代わりにクラスを使用する必要がある場所です。有効な HTML ではありません

于 2012-11-02T09:25:15.600 に答える
1

Id は一意のものであるため、同じ Id を持つ 2 つの DOM 要素を持つことは間違っています。代わりに「クラス」を使用する必要があります。これは意味的に正しく、複数選択できます。

編集: document.getElementById は 1 つの Dom 要素を返します。したがって、次のことを行う必要があります。

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

getElementById を使用する場合。

クラスの要素を選択する場合は、document.getElementById を使用しないでください。

于 2012-11-02T09:28:40.917 に答える
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 に答える
0

ID は要素を一意に識別する必要があるため、1 つの要素に 2 つの ID を持つべきではありません。

于 2012-11-02T09:25:24.297 に答える
0

document.getElementById

ID によって要素への参照を返します。

構文

element = document.getElementById(id);

どこ

elementElement オブジェクトへの参照、または指定された ID を持つ要素がドキュメントにない場合は null です。

id検索対象の要素の一意の ID を表す、大文字と小文字を区別する文字列です

.

于 2012-11-02T09:34:37.117 に答える