如何使用jquery元素查找元素

时间:2015-02-21 01:01:57

标签: jquery

这是方案

doc = $('<div><h1>hello</h1><div>')
ele = $('<h1>hello</h1>') or ele = doc.find('h1').clone()
doc.find(ele)

不会产生任何结果..

2 个答案:

答案 0 :(得分:1)

(由于两个答案非常不同,我添加了第二个答案)

另一种方法是定义自己的clone方法,该方法记录克隆的元素。

jQuery.fn.cloneWithRecord = function() {
  var clone = jQuery(this).clone();
  clone.data('clone-parent', this);
  return clone;
}
var doc = jQuery('<div><h1>hello</h1><div>');
var ele = doc.find('h1').cloneWithRecord();

ele.data('clone-parent') // => [<h1>hello</h1>] from doc

答案 1 :(得分:0)

不幸的是,您看到的输出是预期的结果。 $.find将查找完全相同的元素。克隆元素时,它不再是完全相同的元素。

这是一个长期的解决方法,并不是真正的高效,但可能是您需要的:

doc.find(ele[0].nodeName).filter(function(){return this.outerHTML == ele[0].outerHTML})
// returns the element [<h1>hello</h1>] in `doc`