代码和测试用例位于 jsbin
基本上,$("#div-pmdialog span")
似乎选择了页面上的所有SPAN,而我的理解是它应该只找到那些作为$后代的SPAN (“#div-pmdialog”)
。我做错了什么?
最佳答案
您的 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>
.
关于JQuery 后代选择器选择页面上的所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7893667/