如果jQuery中包含特定字符,则打印每个字符串

Print each string if it contains a specific character in jQuery?

本文关键字:打印 字符串 字符 jQuery 包含特 如果      更新时间:2023-09-26

我想获取所有包含特定单词的字符串,例如:

<div>
    <div>
        <span>
            <h3>In Paris (Mark Bartels) worked for about 50 years.</h3>
        </span>
    </div>
    <div>
        <span>
            <h3>In America (Henry Bartels) worked for about 50 years.</h3>
        </span>
    </div>
    <div>
        <span>
            <h3>In Europe (Mark Bartels) worked for about 50 years.</h3>
        </span>
    </div>
</div>

在上面的字符串中,我必须检查"Mark",现在我想显示所有包含单词"Mark"的字符串。

我尝试了以下方法,但对我没有帮助。

var elem = $('body').find(':contains(Mark)').not('script, style, link');
var a = elem.parent();
var tag = a;
console.log(tag);
$("#sentence").append(elem.text());
$("#sentence").append('<br />');

遍历所有包含字符串的元素并附加innerText。

  1. :not(:has(*)):选择所有没有子元素的元素(不包括文本节点)参考
  2. :contains(Mark)'):选择包含文本Mark的所有元素
  3. :not(script):排除<script>元素

// Get all the h3 elements which contains `Mark` in the innerText
// Iterate over them
$('body').find(':not(:has(*)):contains(Mark):not(script)').each(function() {
  // Append to the element
  console.log($(this)[0]);
  $('#sentence').append($(this).text() + '<br />');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <div>
    <span>
      <h3>In Paris (Mark Bartels) worked for about 50 years.</h3>
    </span>
  </div>
  <div>
    <span>
      <h3>In America (Henry Bartels) worked for about 50 years.</h3>
    </span>
  </div>
  <div>
    <span>
      <h3>In Europe (Mark Bartels) worked for about 50 years.</h3>
    </span>
  </div>
</div>
<div id="sentence"></div>

假设h3有一个公共类text,那么我们可以使用indexof轻松地找出Mark出现的位置

$('.text').each(function () {
    if ($(this).text().indexOf('Mark') >= 0) {
        $("#sentence").append($(this).text() + '<br />');
    }
});