通过这样做,我得到了我想要的东西:
$('#stats_0 li:contains("Speed")').text();
但是,我必须查询除了速度之外的其他特性,在我刚刚通过id得到的列表中。所以为了不让jQuery在整个DOM中出现困扰,我想缓存列表然后应用过滤器。
我试过了:
var list = $('#stats_0');
var txt = $(list).('li:contains("Speed")').text();
但是我收到语法错误:
Uncaught SyntaxError:意外的令牌(
我该怎么办? ref没有帮助我。
答案 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")');