新手jQuery问题,即时创建DOM元素

时间:2010-12-10 01:00:06

标签: jquery

在下面的jQuery片段中,为什么foo2对象没有元素?我的警报显示foo1确实包含DOM元素。不应该找((*“)然后只返回实际上是foo1的克隆?

var foo1 = $("<div id='content'>HAGGIS</div>");  
var foo2 = foo1.find("*");

alert("foo1("+foo1.length+"): "+$('<div>').append(foo1.clone()).remove().html()  
    + "\n\n" +  
      "foo2("+foo2.length+"): "+$('<div>').append(foo2.clone()).remove().html());

3 个答案:

答案 0 :(得分:3)

foo2没有元素,因为选择器适用于foo1的所有子元素,它们没有子元素,只有文本节点。

答案 1 :(得分:2)

关于.find()

的jQuery文档
  

说明:获取后代   当前集合中的每个元素   匹配的元素,由a过滤   选择器。

foo1没有后代。

答案 2 :(得分:1)

不,如果我理解你的问题,那么我会说find()会寻找孩子。这就是为什么foo2.length会给你0.如果你想要克隆foo1那么var foo2 = foo1.clone();就是正确的。