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

标签 jquery jquery-selectors

代码和测试用例位于 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/

相关文章:

jquery - bootstrap 3 中窗口的中心

javascript - 使用 jQuery load/Ajax 功能后将 Clipboard JS 事件绑定(bind)到按钮

jquery - 我正在寻找 Google 即搜即得的克隆版,它可以在您继续键入时动态更改页面(自动完成)

javascript - 如何使用 jQuery 在有换行符的文本周围添加跨度换行?

javascript - .attr ('class' ) 返回多个类名,如何选择我要使用的那个?

jquery - 如何从对象中获取子元素

javascript - jQuery 选择按钮旁边的隐藏输入值

javascript - 检查是否在特定时间间隔内加载了多个图像;如果不是则替换为其他网址

jquery - 通缉 : 'Super selector' or How focus the first visible "input" field that has no value?

javascript - 在 contenteditable div 中使用箭头键移动插入符号时停止不需要的滚动