如何在JavaScript列表中使用CSS选择器?

时间:2016-04-16 22:05:54

标签: javascript contains

为什么这不起作用?

var animals = ['Cat', 'Dog'].valueOf;

if ("animals:contains(Cat)") {
    // ...
}

3 个答案:

答案 0 :(得分:0)

您想使用indexOf method of Array

if(animals.indexOf('Cat') != -1){
    // ...
}

任何非空("")的字符串都为truthy,因此如果您执行ifif("some string")的正文将始终运行。

答案 1 :(得分:0)

您无法在Javascript中使用数组上的CSS选择器。您可以使用indexOf查看数组中是否存在特定字符串。

if (animals.indexOf('Cat') > -1) {
  console.log('We have kitties.')
}

您在Javascript中真正使用CSS选择器的唯一时间就是您要查询DOM。

答案 2 :(得分:0)

您似乎想要JSONSelect

  

JSONSelect定义了一种语法和结构非常相似的语言   CSS3选择器。 JSONSelect表达式是可以的模式   与JSON文档匹配。

请注意,:contains不是标准的CSS psedo-class,但JSONSelect将其作为扩展名提供。

var animals = ['Cat', 'Dog'];
if (JSONSelect.match(':contains("Cat")', animals).length) // truthy
  document.write('There is a cat');
if (JSONSelect.match(':contains("Elephant")', animals).length) // falsy
  document.write('There is an elephant');
<script src="http://jsonselect.org/js/jsonselect.js"></script>

但当然,这太过分了。更好地使用How do I check if an array includes an object in JavaScript?中解释的方法。