結果セット内の他の要素の親であるすべての要素を除外する方法が必要でした。私はプラグインを書いてみました:
jQuery.fn.distinctDescendants = function() {
var nodes = [];
var result = this;
jQuery(result).each(function() {
var node = jQuery(this).get(0);
if(jQuery(node).find(result).length == 0) {
nodes.push(node);
}
});
return nodes;
};
このサンプルページで次のコマンドを実行すると:
jQuery('body, textarea').distinctDescendants();
私は(間違った)結果を得る:
[body.contact-page, textarea, textarea]
body は、結果内の少なくとも 1 つの他の要素 (両方のテキストエリア) の親であるため、これは誤りです。したがって、期待される結果は次のようになります。
[textarea, textarea]
ここで何が問題なのですか?