インターネットエクスプローラーで働いていないクラスごとに子供を削除します

StackOverflow https://stackoverflow.com/questions/6817300

  •  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");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top