一个奇怪的包含(*)jQuery选择器

Far*_*ele 1 jquery

你好,我有这个HTML结构.

<span class="radio" style="background-position: 0px 0px; "></span>
Run Code Online (Sandbox Code Playgroud)

我只想检查样式更改时的状态

<span class="radio" style="background-position: 0px -50px; "></span>
Run Code Online (Sandbox Code Playgroud)

所以我想这段代码会匹配:

var isChecked = $('.yleis span.radio[style*="-50"]')?true:false;

console.log(isChecked);
Run Code Online (Sandbox Code Playgroud)

但为什么总是这样呢?

Guf*_*ffa 6

即使选择器匹配零元素,jQuery调用也总是返回一个jQuery对象.

检查jQuery对象的长度,看它是否匹配任何东西:

var isChecked = $('.yleis span.radio[style*="-50"]').length > 0;
Run Code Online (Sandbox Code Playgroud)

(正如Plutor所说,冒号不应该在选择器中.)