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

jquery find()期望出现哪些行为?

  •  0
  • Imran  · 技术社区  · 15 年前

    这是Firebug会议

    >>> var e = $("<div>div-1<p>p-1</p></div><div>div-2</div><p>p-2</p>");
    >>> e
    [div, div, p]
    >>> e.find('div')
    []
    >>> e.find('p')
    [p]
    

    不是 e.find('div') e.find('p') 本应返回 [div, div] [p, p] 分别?

    1 回复  |  直到 15 年前
        1
  •  4
  •   cobbal    15 年前

    我认为你的问题是它调用了e中每个元素的find,因为e不是一个完整的元素。如果用另一个标签包装e,即:

    var e = $("<div><div>div-1<p>p-1</p></div><div>div-2</div><p>p-2</script></div>");
    

    然后你就会得到你想要的行为。

    或者,如果您不想修改e,可以使用

     e.filter("p").add(e.find("p"));