我对 Javascript 中波浪号功能的理解是它执行按位非运算(即 1 变为 0,反之亦然;1000 变为 0111)。但是,我最近开始研究一个现有项目,其中我的前任包含了很多这样的代码:
var iValuation = $('div[class~="iValuation"]');
谁能告诉我在这种情况下波浪号的目的是什么?我以前没有遇到过它,也无法在网上找到任何关于它的参考。
我对 Javascript 中波浪号功能的理解是它执行按位非运算(即 1 变为 0,反之亦然;1000 变为 0111)。但是,我最近开始研究一个现有项目,其中我的前任包含了很多这样的代码:
var iValuation = $('div[class~="iValuation"]');
谁能告诉我在这种情况下波浪号的目的是什么?我以前没有遇到过它,也无法在网上找到任何关于它的参考。
平铺用作选择器
选择具有指定属性的元素,其值包含给定单词,由空格分隔。
这根本不是 JavaScript 运算符。
更多来自文档:
此选择器将测试字符串与属性值中的每个单词匹配,其中“单词”定义为由空格分隔的字符串。如果测试字符串完全等于任何单词,则选择器匹配。
例如:
<input name="man-news" />
<input name="milk man" />
<input name="letterman2" />
<input name="newmilk" />
$('input[name~="man"]')
将只选择第二个input
,因为它的属性由 .name
分隔space
。
详情请看这里
$
是jQuery
选择器函数,其中包含一个CSS3
选择器字符串:根据CSS3
选择器定义,你遇到的选择器选择:
E[foo~="bar"] 一个 E 元素,它的 "foo" 属性值是一个由空格分隔的值的列表,其中一个值正好等于 "bar"
在DOM
. 因为波浪号被包裹在一个字符串中,所以它不能用作运算符。
如果您想知道两者之间的区别
[class~="foo"]
和
[class*="foo"]
~
将只匹配周围的空格(例如'foo bar'但不匹配'foo-1')
*
将匹配我们的周围没有空格(例如'foo bar'和'foo-1')
~
- 属性间隔选择器
*
- 属性包含选择器