Javascript div:包含无效的选择器

Javascript div:包含无效的选择器,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我正在跟踪并键入$(“div:contains('John')).css(“文本装饰”、“下划线”),但出现异常: VM23376:1未捕获的DOMEException:未能在“CommandLineAPI”上执行“$”:“div:contains('John')”不是有效的选择器。解决方法: 改为按文本手动筛选元素: $('div')。过滤器(函数(元素){ return$(element).text()包括('John') }).css('文本装饰','下划线') 您可以将该字符串存储在变量

我正在跟踪并键入
$(“div:contains('John')).css(“文本装饰”、“下划线”),但出现异常:


VM23376:1未捕获的DOMEException:未能在“CommandLineAPI”上执行“$”:“div:contains('John')”不是有效的选择器。

解决方法: 改为按文本手动筛选元素:

$('div')。过滤器(函数(元素){
return$(element).text()包括('John')
}).css('文本装饰','下划线')

您可以将该字符串存储在变量中,并在contains中调用该变量。请看看这个。希望这对你有帮助

var name = "John";
$( "div:contains(name)" ).css( "text-decoration", "underline" );

您可以使用JS vanilla执行以下操作:

函数包含(选择器、文本){
var元素=document.querySelectorAll(选择器);
返回数组.from(元素).filter(函数(元素){
返回RegExp(text.test)(element.textContent);
});
}
//运行代码
let found=包含('span','Find');
//您也可以使用正则表达式进行搜索
found=包含('span','Find\\s*[A-Za-z]+');
for(设i=0;i

一些文本的span标签上写着Find Me

我想这是一个复制粘贴问题。 OP键入的是
“div:contains('John')”
,而不是
“div:contains('John')”
。 正确复制粘贴的代码不会有任何问题


包含演示
作者
乔治马丁
马尔科姆·约翰·辛克莱
J.Ohn
$(“div:contains('John')).css(“文本装饰”、“下划线”);

如果有任何元素,请张贴您的代码,然后更改选择器。如果你有标记,那么把选择器改为$(“divp:contains('John'))).css(“文本装饰”,“下划线”)@Gayathri:这不会有什么区别(除了可能需要更多的工作),因为祖先
仍将包含所需的字符串。@gyre如果未加载jQuery,则错误为
“$”未定义”
,则OP看起来与加载jQuery不同。这是一个jQuery解析器错误,它如何回答“div:contains('John')”不是有效的选择器。。。在OP的代码可用之前,没有办法判断出什么是错误的,在此之前的任何答案都将是一个幸运的猜测,我们不会在这里进行猜测,除非您将其作为注释发布HMMM,为什么要在使用给定选择器没有错误的情况下使用过滤器呢?我更新了答案,说明这是一个“尝试此选项”答案我想说的是,这里的错误是我们看不到的部分,因此没有答案除了幸运的猜测之外什么都可以。您在这里使用的
name
方法将被解读为字符串,而不是变量。这将尝试选择
div:contains(name)
,而不是
div:contains(John)