有个疑问,既然是选择指定元素名称的全部元素,那和直接加空格有什么区别。例如: $("li label")
2 回答
<!DOCTYPE html>
<html>
<head>
<title>:has(selector)过滤选择器</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
<div>改变包含"label"元素的背景色:</div>
<ol>
<li style="border:1px solid red"><p><span style="border:1px solid red">我是P先生</span></p></li>
<li><label>L妹纸就是我</label></li>
<li><p>我也是P先生</p></li>
<li><label>我也是L妹纸哦</label></li>
<li><p>P先生就是我哦</p></li>
</ol>
</body>
<script type="text/javascript">
$("li span").css("background", "blue");
$("li:has(span)").css("border", "2px solid green");
$("li:has(label)").css("border", "2px solid green");
</script>
</html>
一个是后代选择器,选择的是子代span; 一个是包含这个后代的元素,如$("li:has(span)").css("border", "2px solid green");选择的是li.
举报