1

私は、操作するためにjQueryオブジェクトにドロップしようとしているNodeListが与えられている状況にいることに気づきました。問題は、配列にはテキストノードやコメントノードなども含まれており、と言うだけでjQueryを混乱させるように見えることです$(nodeList)

cleanアンダースコアを使用して、DOM要素を取り除き、それらを配列として返すクイック関数を作成しました。

_.mixin({
    clean: function(nodeList) {
        return _(nodeList).filter(function(node) {
            return node.nodeType == 1;
        });
    }
});

これ$(_(nodeList).clean())により、使用可能なjQueryオブジェクトが得られます。

これについてもっと良い方法はありますか?

ありがとう。

4

2 に答える 2

0

あなたが何を質問しているのかはよくわかりませんが、jQuery オブジェクトから非要素を除外する作業中の jQuery 実装を次に示します。

jQuery.fn.clean = function() {
    return this.filter(function() {
        return(this.nodeType == 1);
    });
}

var nodes = document.getElementById("container").childNodes;
var $elements = jQuery(nodes).clean();

そして、動作するデモ: http://jsfiddle.net/jfriend00/RV6H7/

jQueryには、このタイプの操作を行う内部関数がありますが、そうする組み込みのパブリックメソッドは知りません。

于 2012-08-06T05:58:10.570 に答える