使用:包含在列表中

时间:2015-11-08 23:10:13

标签: javascript jquery debugging syntax syntax-error

通过这样做,我得到了我想要的东西:

$('#stats_0 li:contains("Speed")').text();

但是,我必须查询除了速度之外的其他特性,在我刚刚通过id得到的列表中。所以为了不让jQuery在整个DOM中出现困扰,我想缓存列表然后应用过滤器。

我试过了:

var list = $('#stats_0');
var txt = $(list).('li:contains("Speed")').text();

但是我收到语法错误:

  

Uncaught SyntaxError:意外的令牌(

我该怎么办? ref没有帮助我。

1 个答案:

答案 0 :(得分:1)

function('...').('...')不是有效的JavaScript语法。应在调用函数的函数之后使用调用运算符(())。您正在寻找find方法:

list.find('li:contains("Speed")').text();

另请注意,由于list已经是jQuery对象,因此无需将list传递给jQuery构造函数。如果你将一个jQuery对象传递给jQuery构造函数,jQuery不会抱怨并返回相同的对象,但这样做是不必要的,并没有多大意义。

您可以在案例中使用的另一个选项是缓存目标li元素并使用filter方法:

var $list = $('#stats_0 li');
var txt = $list.filter(':contains("Speed")');