我遇到以下语法:
$('#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');