html - 如何比较 JQuery 中的两个元素文本?
问题描述
在我的项目中,我使用的是 Jquery。所以我有两个部分,每个部分都有多个具有不同内容的元素,例如,左内容和右内容。所以 left-content 和 right-content 具有相同的类,具有多个元素,而 right-content 是动态的,而 left-content 是固定的。
因此,如果 right-content 文本和 left-content 文本相等,则 left-content 我们拥有的特定元素会添加一个新类。
我尝试了一些方法,但它没有按照我的预期工作。请帮我解决这个问题。如果有任何问题,请纠正我。
jQuery(document).ready(function(){
let headingElement = jQuery('#articleTitle').text();
jQuery('.ellipsis a').filter(function(){
return jQuery(this).text() === headingElement;
}).addClass('active');
});
.active{
color:yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<div class="left-content">
<div class="ellipsis">
<a href="#">Terminology one</a>
</div>
<div class="ellipsis">
<a href="#">Terminology two </a>
</div>
<div class="ellipsis">
<a href="#">Terminology three</a>
</div>
</div>
<div class="right-content">
<h2 class="heading" id="articleTitle">Terminology two</h2>
</div>
解决方案
您可以使用:contains
它来检查元素是否需要文本,然后将添加类添加到该元素。
演示代码:
jQuery(document).ready(function() {
let headingElement = jQuery('#articleTitle').text();
jQuery('.ellipsis a:contains(' + headingElement + ')').addClass('active');
});
.active {
color: yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<div class="left-content">
<div class="ellipsis">
<a href="#">Terminology one</a>
</div>
<div class="ellipsis">
<a href="#">Terminology two </a>
</div>
<div class="ellipsis">
<a href="#">Terminology three</a>
</div>
</div>
<div class="right-content">
<h2 class="heading" id="articleTitle">Terminology two</h2>
</div>
推荐阅读
- mongodb - Mongo:锁定单个文档以供 READ 和后续更新
- android - 为应用操作创建自定义内置 Intent
- python - 转换熊猫数据框中的嵌套字典
- html - angularJS脚本文件在html中调用时不起作用
- c# - INSERT 语句与 MVC 中的 FOREIGN KEY 约束冲突
- excel - 如何在 Z ie 之后将值粘贴到 VBA 中。AA、AB 等
- android - AndroidApplicationConfiguration 无法在 Android Studio 中解析
- prerender - Prerender 经常停止。我该如何处理?
- python - 对其中一列包含 nan 值的数据框进行排序
- python - 如果订阅者收到消息但中途连接失败,消息是否会再次传递?