求问,为什么$(".div:(span)").css(.......)里has要查找的是元素对象,而span不是应该写成"span"才是元素对象么?到底在jq里面双引号应该怎么加啊?好迷惘~~~
因为$()这个函数需要传入的参数是字符串,所以你要用引号引起来。比如
$("div").css(...);
就等同于下面的写法:
var str="div"; //赋值一个字符串给变量str
$(str).css(...); //这个地方的str变量就表示一个字符串,
一个html标签就是一个html元素对象,不需要加引号。
在 HTML DOM 中, 元素对象代表着一个 HTML 元素。html元素就是我们所说的标签。
$(".div:has(span)").css("color", "blue"); //:has()查找包含span元素的div元素
$(".div:contains(':contains')").css("color", "#CD00CD"); //:contains('':contains'')查找的是包含文本内容:contains的div元素,因为它是文本内容字符串,所以要引起来。
左侧的看了,但是这样就是死记硬背了。我更想知道语法的逻辑。而不是这里不用加双引号。。。。。
$(":has(selector)") 选择包含指定元素的元素
左侧内容过滤器的表好好看看