我正在关注this example并输入^example\.com\/[a-z]+\-[a-z]+$
,但却有例外:
VM23376:1未捕获的DOMException:无法在'CommandLineAPI'上执行'$':'div:contains('John')'不是有效的选择器。
答案 0 :(得分:0)
您可以使用JS vanilla来做到这一点:
function contains(selector, text) {
var elements = document.querySelectorAll(selector);
return Array.from(elements).filter(function(element) {
return RegExp(text).test(element.textContent);
});
}
// Run Code
let found = contains('span', 'Find');
// You can also search with regex
found = contains('span', 'Find\\s*[A-Za-z]+');
for (let i = 0; i < found.length; i++) {
let elem = found[i];
elem.style.backgroundColor = 'red';
}
<p>Some text where you have span tag that said <span>Find Me</span></p>
答案 1 :(得分:0)
我猜是复制粘贴问题。
OP 键入 'div:contains('John')'
而不是 "div:contains('John')"
。
正确复制粘贴的代码可以正常工作。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>contains demo</title>
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
<div>John Resig</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn</div>
<script>
$( "div:contains('John')" ).css( "text-decoration", "underline" );
</script>
</body>
</html>
答案 2 :(得分:-1)
解决方法:强> 通过文本手动过滤元素:
$('div').filter(function(element){
return $(element).text().includes('John')
}).css('text-decoration', 'underline' )
答案 3 :(得分:-3)
您可以将该字符串存储在变量中,并在contains中调用该变量。请看看这个。希望这会对你有所帮助。
var name = "John";
$( "div:contains(name)" ).css( "text-decoration", "underline" );