首页 > 解决方案 > 从 Div 获取匹配的文本

问题描述

我有以下 div 包含某些我需要与逗号分隔值匹配的文本:

<div class="val">
    This is para 1
</div>

<div class="val">
    This is para 2
</div>

我正在使用Ajax调用来匹配来自服务器端的这些值,并具有以下检索格式:

This is para 1, This is para 2

因此,对于除逗号分隔的一个字符串,我可以匹配一个字符串并根据该文本进行更改,如下所示:

$( ".val:contains('This is para 1')" ).css( "color", "green" );

但我不确定如何实现这一目标?

$( ".val:contains('This is para 1, This is para 2')" ).css( "color", "green" );

这意味着它应该使颜色更改为相应的 div。所以我相信,我需要对文本进行某种拆分以相应地匹配它们,但有点困惑。任何更好的方法或想法将不胜感激 - 谢谢。

标签: javascriptjquery

解决方案


我会重构服务器发送的内容(也许是有效的 JSON?)。尽管如此,要同时定位两者,.val您需要单独选择它们。下面的代码片段假设服务器将发送This is para 1, This is para 2并构建 jQuery 的选择器

const res = `This is para 1, This is para 2`;

const selector = res.split(',').map(s => `.val:contains('${s.trim()}')`).join(', ');

console.log(selector);

$(selector).css( "color", "green" );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<div class="val">
    This is para 1
</div>

<div class="val">
    This is para 2
</div>


推荐阅读