contents()。find()不会产生与更改选择器上下文相同的结果? - jQuery

时间:2010-06-09 19:02:07

标签: jquery

我有一个看起来像这样的函数:

function(domObj) {
    var currentObj = $(domObj);
    ...
    currentObj.contents().find(".ws").after("foobar");
}

我的问题是上面使用.contents().find()的方法不起作用。 “foobar”永远不会被指定的dom元素填充,由选择器.ws

表示

但是,如果我这样做:

$(".ws", currentObj).after("foobar"); 

然后每次都会附加字符串“foobar”。

我的问题:

这两种方法不应该是等同的吗?我使用.contents().find()时如何/我做错了什么,以致它无效?

谢谢!

1 个答案:

答案 0 :(得分:2)

$(".ws", currentObj).after("foobar");

...等同于:

currentObj.find(".ws").after("foobar");

contents()返回所有子节点,因此当您执行contents().find()时,您实际上正在 子节点中搜索,而不是搜索子节点 - 节点本身。