使用 :contain 在列表中
Use :contain in list
我这样做得到了我想要的:
$('#stats_0 li:contains("Speed")').text();
但是,我必须查询速度以外的其他特征,在我刚刚通过 id 获得的同一个列表中。所以为了不让jQuery在整个DOM出去闹鬼,我想缓存列表,然后应用过滤器。
我试过了:
var list = $('#stats_0');
var txt = $(list).('li:contains("Speed")').text();
但我收到语法错误:
Uncaught SyntaxError: Unexpected token (
我该如何进行? ref 对我没有帮助。
function('...').('...')
是无效的 JavaScript 语法。调用运算符(()
)应该在函数之后用于调用函数。您正在寻找 find
方法:
list.find('li:contains("Speed")').text();
另请注意,无需将 list
传递给 jQuery 构造函数,因为 list
已经是一个 jQuery 对象。如果您将 jQuery 对象传递给 jQuery 构造函数,jQuery 不会抱怨并且它 returns 是同一个对象,但是这样做是不必要的并且不会产生很多有道理。
您可以在您的案例中使用的另一个选项是缓存目标 li
元素并使用 filter
方法:
var $list = $('#stats_0 li');
var txt = $list.filter(':contains("Speed")');
我这样做得到了我想要的:
$('#stats_0 li:contains("Speed")').text();
但是,我必须查询速度以外的其他特征,在我刚刚通过 id 获得的同一个列表中。所以为了不让jQuery在整个DOM出去闹鬼,我想缓存列表,然后应用过滤器。
我试过了:
var list = $('#stats_0');
var txt = $(list).('li:contains("Speed")').text();
但我收到语法错误:
Uncaught SyntaxError: Unexpected token (
我该如何进行? ref 对我没有帮助。
function('...').('...')
是无效的 JavaScript 语法。调用运算符(()
)应该在函数之后用于调用函数。您正在寻找 find
方法:
list.find('li:contains("Speed")').text();
另请注意,无需将 list
传递给 jQuery 构造函数,因为 list
已经是一个 jQuery 对象。如果您将 jQuery 对象传递给 jQuery 构造函数,jQuery 不会抱怨并且它 returns 是同一个对象,但是这样做是不必要的并且不会产生很多有道理。
您可以在您的案例中使用的另一个选项是缓存目标 li
元素并使用 filter
方法:
var $list = $('#stats_0 li');
var txt = $list.filter(':contains("Speed")');