问答详情
源自:2-8 jQuery选择器之内容筛选选择器

答案 是不是少写一些代码啊

$(".div:has(span)").css("color", "blue");这个是之前的答案 $(".div>p:has(span)").css("color", "blue");  这个是我写的  他的答案是不是少写了一个p啊  前几张也是这样少些一些代码  是故意写成那样的吗?

提问者:qq_乐柠檬_0 2016-12-30 16:12

个回答

  • 慕仔3074982
    2016-12-30 18:36:47
    已采纳

    从字面意思来看,$(".div:has(span)")表示的是选中包含<span>的且class=div的元素;$(".div>p:has(span)")表示的是选中了属于class=div的元素的直接子元素且包含<span>的<p>。

    所以前者表示选中的是class=div的元素,而你的写法表示选中的<p>。如果你给class=div的元素和<p>元素分别设置一下不同的宽和高以及背景颜色,就可以看出不用的效果了。