Chr*_*ris 22 jquery contains this
我正在尝试将包含特定文本字符串的任何元素更改为红色.在我的例子中,我可以让子元素变为蓝色,但是我写的"替换我"行的方式是不正确的; 红色变化不会发生.我注意到"包含"方法通常写成:contains但我无法通过验证$(this).
$('#main-content-panel .entry').each(function() {
$(this).css('color', 'blue');
});
$('#main-content-panel .entry').each(function() {
if($(this).contains("Replace Me").length > 0) {
$(this).css('color', 'red');
}
});
Run Code Online (Sandbox Code Playgroud)
jko*_*era 73
:contains是一个选择器.要检查选择器是否适用于给定变量,您可以使用is:
if($(this).is(':contains("Replace Me")'))
Run Code Online (Sandbox Code Playgroud)
然而,在这种情况下,Vega的解决方案更清晰.
Sel*_*gam 17
我不认为有一个.containsjQuery中有一个函数..contains函数,但该函数用于查看DOM元素是否是另一个DOM元素的后代.请参阅.contains的文档. (致@beezir的积分)
我想你正在寻找:contains选择器.请参阅下面的更多细节,
$('#main-content-panel .entry:contains("Replace Me")').css('color', 'red');
Run Code Online (Sandbox Code Playgroud)
mbh*_*n88 12
您可以使用它match来查找特定元素内的文本
$('#main-content-panel .entry').each(function() {
$(this).css('color', 'blue');
});
$('#main-content-panel .entry').each(function() {
if($(this).text().match('Replace Me')) {
$(this).css('color', 'red');
}
});Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="main-content-panel">
<div class="entry">ABC</div>
<div class="entry">ABC Replace Me</div>
<div class="entry">ABC</div>
<div class="entry">ABC Replace Me</div>
</div>Run Code Online (Sandbox Code Playgroud)
我认为我们应该将文本转换为小写。最好检查小写和大写。
$('#main-content-panel .entry').each(function() {
var ourText = $(this).text().toLowerCase(); // convert text to Lowercase
if(ourText.match('replace me')) {
$(this).css('color', 'red');
}
});
Run Code Online (Sandbox Code Playgroud)