代码之家  ›  专栏  ›  技术社区  ›  Alex

contents().find()没有产生与更改选择器上下文相同的结果?- jQuery

  •  0
  • Alex  · 技术社区  · 14 年前

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

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

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

    但是,如果我这样做:

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

    然后每次追加字符串“foobar”。

    我的问题:

    这两种方法不应该是对等的吗?我在使用时怎么做/做了什么错事 .contents().find()。 所以它不起作用?

    谢谢!

    1 回复  |  直到 14 年前
        1
  •  2
  •   James    14 年前
    $(".ws", currentObj).after("foobar");
    

    …等同于:

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

    contents() 返回所有子节点,因此在执行 contents().find() 你真的在搜索 在内部 子节点,而不是搜索子节点本身。