属性選択用の querySelectorAll のネイティブ代替手段
質問:
どのようにエミュレートできますか? IE7 以前で querySelectorAll() が利用できない場合、document.querySelectorAll('[data-foo]') の機能は利用できませんか?
解決策:
この互換性に対処するにはこの問題を解決するには、ネイティブの getElementsByTagName() メソッドを使用して必要な属性の選択を実行するカスタム関数 getAllElementsWithAttribute を作成できます。
function getAllElementsWithAttribute(attribute) { var matchingElements = []; var allElements = document.getElementsByTagName('*'); for (var i = 0, n = allElements.length; i < n; i++) { if (allElements[i].getAttribute(attribute) !== null) { matchingElements.push(allElements[i]); } } return matchingElements; }
この関数を目的の属性で呼び出します (例: getAllElementsWithAttribute('data- foo')) を使用すると、指定した属性を持つ要素の配列を取得できます。
以上がIE7 以前で特定の属性を持つ要素を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。