如果div文本包含特定文本,则替换span中的文本



如果div包含文本I am now visible,则从<span class="redbadge">将文本No替换为Yes。

HTML

<div class="visibleonsearch">
<span class="redbadge">No</span>
I am now visible.
</div>

jQuery

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
jQuery(document).ready(function () {
​   ​$(".visibleonsearch").text(function () {
return $(this).text().replace("No", "Yes"); 
});​​​​​ 
</script>

我不熟悉jQuery添加条件if

您可以尝试使用:contains选择器,如下所示:

jQuery(document).ready(function () {
if($(".visibleonsearch:contains(I am now visible)").length){
var span = $('.visibleonsearch').find('.redbadge'); 
span.text(span.text().replace("No", "Yes"));
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="visibleonsearch">
<span class="redbadge">No</span>
I am now visible.
</div>

如果目标是更改span的文本,同时将span本身留在DOM中,则可以使用:contains查找相关的.redbadge元素,如下所示:

$('.visibleonsearch:contains("I am now visible") .redbadge').text('Yes');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="visibleonsearch">
<span class="redbadge">No</span> I am now visible.
</div>

try this code
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(".visibleonsearch:contains(I am now visible.)").find(".redbadge").text(function () {
return $(this).text().replace("No", "Yes"); 
});
});
</script>
</head>
<body>

<div class="visibleonsearch">
<span class="redbadge">No</span>
I am now visible.
</div>
</body>
</html>

最新更新