我遇到以下语法:

 $('#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。

数据-属性

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



您的选择器将不起作用,除非您将HTML更改为:

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

或将选择器更改为:
$('[data-module-id="sourcePane"] input:checked~img');

07-24 20:38