Javascript li.toUpperCase():不是选择器困难
我有一些代码如下所示:Javascript li.toUpperCase():不是选择器困难,javascript,jquery,Javascript,Jquery,我有一些代码如下所示: $('.myList li:not(:contains(' + myWord + '))').css({'color' : red' }); $('.myList li.'+toUpperCase()+':not(:contains(' + myWord.toUpperCase() + '))').css({'color' : 'red' }); 调用时,这将使不包含我的关键字的所有内容变为红色 但是,这不是不区分大小写的搜索。为了做到这一点,我尝试了以下方法: $(
$('.myList li:not(:contains(' + myWord + '))').css({'color' : red' });
$('.myList li.'+toUpperCase()+':not(:contains(' + myWord.toUpperCase() + '))').css({'color' : 'red' });
调用时,这将使不包含我的关键字的所有内容变为红色
但是,这不是不区分大小写的搜索。为了做到这一点,我尝试了以下方法:
$('.myList li:not(:contains(' + myWord + '))').css({'color' : red' });
$('.myList li.'+toUpperCase()+':not(:contains(' + myWord.toUpperCase() + '))').css({'color' : 'red' });
但这只会带来错误
如何执行不区分大小写的:not(:contains搜索?我建议一种更简单的方法:
$('.myList li').filter(function(){
// I may have become lost in your approach, but the following
// will filter the list to those nodes that *do not* contain
// text equal to that contained in the myWord variable
var text = $(this).text().toLowerCase();
return text.indexOf(myWord.toLowerCase()) == -1;
}).css('color', red);
请注意:
$('.myList li.'+toUpperCase()+':not(:contains(' + myWord.toUpperCase() + '))').css({'color' : 'red' });
您似乎正在搜索类名等于
大写()
函数(这不会发生)的列表项,然后您希望强制:contains()
选择器不区分大小写,您已经发现它不区分大小写。我建议一种更简单的方法:
$('.myList li').filter(function(){
// I may have become lost in your approach, but the following
// will filter the list to those nodes that *do not* contain
// text equal to that contained in the myWord variable
var text = $(this).text().toLowerCase();
return text.indexOf(myWord.toLowerCase()) == -1;
}).css('color', red);
请注意:
$('.myList li.'+toUpperCase()+':not(:contains(' + myWord.toUpperCase() + '))').css({'color' : 'red' });
您似乎正在搜索类名等于
大写()
函数(这不会发生)的列表项,然后您希望强制:contains()
选择器不区分大小写,您已经发现它不区分大小写。我建议您使用过滤器来执行此操作,它更简洁:
$('.myList li').filter(function() {
return !new RegExp(myWord, 'i').test($(this).text());
}).css('color', 'red');
如果希望i
标志区分大小写,则可以将其删除。我建议您使用过滤器执行此操作,因为它更简洁:
$('.myList li').filter(function() {
return !new RegExp(myWord, 'i').test($(this).text());
}).css('color', 'red');
如果你想让它区分大小写,你可以删除i
标志。哦,它是不区分大小写的..?虽然OP声明“这不是一个不区分大小写的搜索”,但他的toUpperCase
attemp建议相反。对我来说,代码比段落Soh更好,它是不区分大小写的..?虽然OP声明“这不是一个不区分大小写的搜索”,他的toUpperCase
attemp提出了相反的建议