JQuery Descendant选择器选择页面上的所有元素?

时间:2011-10-25 17:57:33

标签: jquery jquery-selectors

jsbin

上的代码和测试用例

基本上,$("#div-pmdialog span")似乎选择了页面上的所有SPAN,而我的理解是它应该只找到那些$("#div-pmdialog")后代的SPAN。我做错了什么?

4 个答案:

答案 0 :(得分:2)

你的jQuery是有效的。你的HTML不是。

在这里,检查一下:http://jsbin.com/iqazus/6/edit

所有divspan元素都应包含结束标记。

答案 1 :(得分:2)

您的HTML未按预期解析。 DOM检查员说它被解析为:

<div id="div-pmdialog">
    <p><span>hello</span></p><div id="div-pmdialog-text"><p></p>
  </div>

  <div id="div-indypcs-error"><span style="background-color:green">hello</span></div>    
</div>

HTML不是XML。在HTML4及更早版本中,自动关闭标签是无操作的,主要是因为浏览器只是忽略了斜杠。我相信HTML5指定某些代码可能是“自我关闭”的,但只有那些永远不会拥有任何内容的代码,例如<img><br>

答案 2 :(得分:0)

问题是由于您在<span><div>元素上使用短标记引起的。它在这里工作:http://jsbin.com/iqazus/9/edit#preview

答案 3 :(得分:-1)

hrmmmm尝试“span #div -pmdialog”