为什么这个jQuery选择器表达式中的空格是相关的
Why is the space in this jQuery selector-expression relevant
假设我有这个HTML片段(假设其余文档没有其他div):
<div>
<p>Lorem ipsum dolor sit amet</p>
<pre>1st</pre>
</div>
使用 jQuery,我希望这段代码...
$('div:has(pre) :eq(0)').css('background-color','red');
$('div:has(pre):eq(0)').css('color','green');
将整个<div>
的背景色设置为红色,将颜色设置为绿色。换句话说,我希望两个jQuery选择器都匹配包含单个div的同一组元素。然而,第一个选择器似乎只匹配<pre>
,而第二个选择器实际上匹配<div>
。
斯菲德尔
div:has(pre) :eq(0)
使用后代选择器。另一个没有。
这是为了匹配 CSS 选择器的行为。
在CSS选择器中,空格表示"后代"。 所以div p
意味着"所有<p>
标签都是<div>
的后代。
当你做 'div:has(pre):eq(0)'
,您将:has
和:eq
应用于div
选择器,因此您将找到第一个内部有<pre>
的<div>
。
另一方面,'div:has(pre) :eq(0)'
会找到任何<div>
中第一个里面有<pre>
的孩子。
相关文章:
- 正则表达式搜索一个空格,后跟一个字符
- 较短的正则表达式,按2个条件拆分,外部有空格
- 正则表达式,用于去掉逗号后的单个空格
- 正则表达式允许字母数字和空格,但不允许连续两个空格
- 正则表达式和 javascript:匹配数字后跟空格和大写字母之间的所有内容
- 正则表达式匹配空白或空格 JavaScript
- 字符串替换正则表达式,开头为空格
- 如何在正则表达式中匹配空格、换行符
- 为什么当我在正则表达式中放置空格键时,我的 Javascript test() 函数失败了
- 节点中带有空格的 XPath 表达式表示挑衅.js
- 用于匹配带空格和不带空格的多个单词的正则表达式
- 正则表达式,用于除所有空格和一个特殊字符之外的所有内容
- 使用正则表达式获取多个单词,单词之间留有空格
- 如何使正则表达式接受ONLY字母表和空格
- Javascript正则表达式,返回连字符和空格后面的数字
- JS正则表达式匹配单词,包括用空格括起来的单词
- 需要帮助设计正则表达式来选择'|'和'|'如果第一个'|'后面跟着一个空格
- 在搜索表单中,替换空格或仅使用正则表达式的隐词和数字
- 在javascript中用正则表达式替换空格
- Javascript正则表达式空格很古怪