例如,一个div中有6个具有相同类的“ p”标签,但是一些“ p”标签内部包含成员文本,而有些具有非成员文本。我想选择所有带有“成员”内部文本的“ p”标签,并使用jquery向它们添加另一个类
这是我要对其执行操作的代码
<div>
<p class="customClass">Member</p>
<p class="customClass">Non-Member</p>
<p class="customClass">Member</p>
<p class="customClass">Non-Member</p>
<p class="customClass">Member</p>
</div>
这是预期的结果
<div>
<p class="customClass member">Member</p>
<p class="customClass">Non-Member</p>
<p class="customClass member">Member</p>
<p class="customClass">Non-Member</p>
<p class="customClass member">Member</p>
</div>
答案 0 :(得分:2)
一个选项是filter
所有.customClass
,仅包含“成员”并添加类.member
$(".customClass").filter(function() {
return $(this).text().trim() === "Member"
}).addClass("member");
.member {
background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<p class="customClass">Member</p>
<p class="customClass">Non-Member</p>
<p class="customClass">Member</p>
<p class="customClass">Non-Member</p>
<p class="customClass">Member</p>
</div>
答案 1 :(得分:0)
使用以下内容:
$("p:contains(Member)")
这将返回所有包含文本“ Member”的“ p”标签。然后分配其他类别:
$("p:contains(Member)").addClass("member");
如果您只希望“成员”而不包含“非成员”,请使用:
$("p:not(:contains(Non-Member))").addClass("member")
您可以通过在选择器文本中添加更多内容来使其更加具体。我还没有尝试过,但是可以尝试一下:
$(".customClass p:not(:contains(Non-Member))").addClass("member")
要选择所有带有“ customClass”类且不包含文本Non-Member的标签。刚刚进行编辑,现在它选择所有不包含文本“ Non-Member”的“ customClass”类的所有“ p”标签,然后向其中添加其他类“ member”。
答案 2 :(得分:-1)
您只需要这样编写选择器:
$(".member").exampleMethod();
这是一个按类的选择器,是一个非常简单且基本的解决方案,因此我建议您阅读jquery文档