javascript - jquery选择器语法问题

标签 javascript jquery html

我遇到了以下语法:

 $('#sourcePane input:checked~img');

我知道它正在选择所有选中的输入元素,并且还在 id= sourcePane 的元素下?对吧?

但是 ~img 是什么? ~ 是做什么的?

另外,HTML中对应的元素是

<div data-module="Sources" data-module-id="sourcePane">

为什么不是 id="sourcePane"而是 data-module-id="sourcePane"??

最佳答案

a ~ b

这是 CSS 3 通用兄弟组合器。它的意思是“选择所有与 a 相邻的 b 元素。”。它的工作方式类似于相邻兄弟组合器 a + b,但 b 不必紧跟在 a 之后。

data- 属性

这是用于创建自定义属性的 HTML5 语法。来自HTML5 spec :

Custom data attributes are intended to store custom data private to the page or application, for which there are no more appropriate attributes or elements.

除非您将 HTML 更改为:

,否则您的选择器将不起作用:
<div id="sourcePane" data-module="Sources" data-module-id="sourcePane">

或将您的选择器更改为:

$('[data-module-id="sourcePane"] input:checked~img');

关于javascript - jquery选择器语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6239417/

相关文章:

javascript - KnockoutJs 和模板 - visual studio 中没有代码突出显示/完成?

c# - 从 javascript 调用 Razor

javascript - 所选插件似乎不适用于移动浏览器

javascript - 在窗口关闭时运行 Ajax 请求

html - 网站布局建议

javascript - 命名默认 ES6 参数,无需解构

javascript - 为什么 jQuery 将 XHR 对象创建包装在 try/catch 中?

javascript - 去除浏览器的标题栏、菜单栏、导航栏、标签栏、地址栏和状态栏

javascript - 跨平台获取文档高度

Java 小程序 NoClassDefFounderror