1

Ok。ふと、こんな疑問が頭に浮かびました。

jQueryのようなライブラリを使用すると、いくつかの .xml を持つ要素を簡単に探すことができますclassid検出する要素にを適用する必要はありません。Vanilla js では、メソッドを使用して要素を見つけるオプションがあり、getElementById()ID を大幅に適用する必要があります。

このソリューションを調べて、この場合は になる属性を使用して要素を見つけましたclass。解決策を調べた後、ブラウザに非常に重いことがわかりました。複雑な DOM 構造を使用すると、パフォーマンスが低下します。そして、私の質問は同じままです。

Vanilla Javascriptで使用する要素と使用class nameしない要素を見つけるにはどうすればよいですか?id

4

2 に答える 2

5

どうですか

var elems = document.getElementsByClassName('someclass');

これは、指定されたクラスを持つ要素のセットを返します。elems[0]その後、などを使用してアクセスできますelems[1]

jQuery は最終的には JavaScript に基づいているため、実行の観点から見て高速になることはありません。

jQuery から JavaScript への興味深い翻訳がここで見つかるかもしれません

http://vanilla-js.com/

getElementsByTagName古いバージョンの IEでは、返された要素を使用してループする必要があります。このユーティリティ関数は、IE6 以降と互換性があるはずです(おそらく、リンク先のソリューションと同様です)。

function getElementsByAttributeValue(atrName,atrValue) {
    var matchElems = [];

    var allElems = document.getElementsByTagName('*');
    for(var x = 0, len = allElems.length; x < len; x++) {
        if(allElems[x].getAttribute(atrName) != atrValue) {
            continue;
        }

        matchElems.push(allElems[x]);
    }

    return matchElems;
}

使用法は次のとおりです。

var elems = getElementsByAttributeValue("class","someclass");
于 2013-01-13T08:37:53.543 に答える
0

document.getElementByClassName('testclass');テストクラスを持つ要素を提供します。これを使用document.getElementsByTagName('img');して、img要素を提供することもできます。

于 2013-01-13T09:59:22.963 に答える