Вы можете использовать метод jQuery .filter()
вместе с методом массива .includes()
:
let str = 'This is para 1, This is para 2,This is para c';
$(".val").filter(function() {
return str.split(/, |,/).includes( this.textContent.trim() );
})
.css( "color", "green" );
let str = 'This is para 1, This is para 2,This is para c';
$(".val").filter(function() {
return str.split(/, |,/).includes( this.textContent.trim() );
})
.css( "color", "green" );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="val">
This is para 1
</div>
<div class="val">
This is para a
</div>
<div class="val">
This is para b
</div>
<div class="val">
This is para 2
</div>
<div class="val">
This is para c
</div>
<div class="val">
This is para d
</div>
Однако я бы предпочел использовать .filter()
с техникой, которая использует селектор :contains()
, так как это будет ближе к вашей цели:
let str = 'This is para 1, This is para 2,This is para c';
$(".val").filter(function() {
return str.split(/, |,/).some(s => $(this).is(':contains(' + s + ')'));
})
.css( "color", "green" );
let str = 'This is para 1, This is para 2,This is para c';
$(".val").filter(function() {
return str.split(/, |,/).some(s => $(this).is(':contains(' + s + ')'));
})
.css( "color", "green" );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="val">
This is para 1
</div>
<div class="val">
This is para a
</div>
<div class="val">
This is para b
</div>
<div class="val">
This is para 2
</div>
<div class="val">
This is para c
</div>
<div class="val">
This is para d
</div>