0

jQuery の.children().

より具体的には、の子を取得しようとしていますが$x(this)$x(this).children('p')機能しません (ライブラリに存在しないようです。Firebug によると認識されず、xuijs ドキュメントにもありません)。

4

1 に答える 1

1

そのライブラリについてはわかりませんが、ネイティブ DOM 要素がある場合、ネイティブ JS は次のようになります。

[].filter.call(this.children, function(el, i) { 
    return el.nodeName.toLowerCase() === 'p'; 
});

レガシーブラウザをサポートしている場合はArray.prototype.filter、MDN から shim を入手できます。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter#Compatibility


また、再利用可能な関数も簡単に作成できます。

function children(elem, s) {
    return [].filter.call(elem.children, function(el, i) { 
        return el.nodeType === 1 && (!s || el.nodeName.toLowerCase() === s); 
    });
}

children(this, 'p');

タグ名でフィルタリングするだけですが、拡張するのは簡単です。

于 2012-05-16T16:49:11.720 に答える