現在のプロジェクトを IE7 互換にしようとしています。jQuery は使用していませんが、代わりにquerySelectorAll
セレクターのニーズに使用しています。ただし、IE7 は をサポートしていないため、 https://gist.github.com/868532querySelectorAll
のコードでモンキー パッチを適用しました。1 つの小さな違いを除いて、実際には問題なく動作します。元の のようなa ではなく、配列を返します。できるだけ互換性を保ちたいので、その関数が. ネットで見つかったいくつかの方法を使用して、要点をこれに適合させました。NodeList
querySelectorAll
NodeList
(function(d) {
d=document, a = d.styleSheets[0] || d.createStyleSheet();
if (! vxJS.isHostMethod(d, 'querySelectorAll')) {
d.querySelectorAll = function(e) {
a.addRule(e,'f:b');
for (var l=d.all, b=0, c=d.createDocumentFragment(),f=l.length; b<f; b++) {
l[b] && l[b].currentStyle.f && c.appendChild(l[b].cloneNode(true));
}
a.removeRule(a.rules.length - 1);
return c.childNodes;
};
}
})();
このコードに関する私の問題はappendChild
、DOMツリーの元の場所からノードを削除するcloneNode
ことです。
実際のノード参照を NodeList に入れる方法はありますか?