インターネットエクスプローラーで働いていないクラスごとに子供を削除します
-
25-10-2019 - |
質問
私はスクリプトを持っています( @briguy37によって助けられました RemoveChildを使用して同じ名前の複数の要素を削除しますか?)forループを使用してremovechildを使用して、特定のクラス名ですべての要素を削除します。 FFで完全に機能しますが、つまり、エラーが発生します
Object doesnt support this property or method
プロジェクトは次のように表示できます。 http://jsfiddle.net/u8xkg/31/
エラーは行を指します。
var childNodesToRemove = document.getElementById(parentId).getElementsByClassName('foo');
何か案は?
ありがとう。
解決
document.getElementsByClassName = function(class_name)
{
var all = this.getElementsByTagName('*');
var matchArray = new Array();
var re = new RegExp("(?:^|\\s)" + class_name + "(?:\\s|$)");
for (var i = 0, l = all.length; i < l; i++)
{
if (re.test(all[i].className))
matchArray.push(all[i]);
}
return matchArray;
}
他のヒント
残念ながら、IEにはメソッドgetElementsbyByclassNameはありません。
そのような方法があるかどうかを確認します - getElementsByClassName
。そうでない場合は、確認してください querySelectorAll
メソッドがサポートされています。繰り返しになりますが、ノードを取得するためにいくつかのフレームワークをよりよく使用する必要があります。特に、このコードはクロスブラウザーであることを目的としています。
プロジェクト(jquery、yuiなど)でフレームワークを使用していない場合は、少なくともあなた自身に恩恵を与え、少なくともを含めて生産性を高めます シズルライブラリ これにより、CSS3セレクター機能が任意のブラウザに追加されますが、非常に軽量で高速です。それはあなたにただやらせることができます:
var childNodesToRemove = Sizzle(".foo");
所属していません StackOverflow