我需要一种方法来过滤掉结果集中其他元素的父元素。我试着写一个插件:
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 是结果中至少一个其他元素的父元素(两个文本区域)。因此,预期的结果将是:
[textarea, textarea]
这里有什么问题?