当它包含特定字符串时删除<p>

时间:2018-05-26 15:23:06

标签: javascript jquery html

所以当他们的元素有这个时,我尝试删除一些p html:pasdefichier on。

我尝试使用此代码,但它不起作用! 我确切地说p已经添加了ajax。 我能怎么做 ?

let myQueue = DispatchQueue(label: "myQueue", qos: .userInitiated)

html代码:

myQueue.async {
    changeSomeResources()
}

4 个答案:

答案 0 :(得分:3)

以下片段是您想要达到的目标 我使用这些函数使它工作:

  • .html()获取元素的内容
  • .includes()检查此内容中的字符串。

请注意,我更喜欢这种方法而不是$('p:contains(text)'),因为我们可以使用它轻松添加else

当你使用jQuery时,我也在我的代码片段中使用它 如果它更符合您的需求,您当然可以使用.hide()代替.remove()

  1. 如果您只有一个元素:
  2. &#13;
    &#13;
    if ($('#123456789').html().includes('pasdefichier')) {
      console.log('Removed p!');
      $('#123456789').remove();
    } else {
      // Do something else
    }
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <p class="downloadfileexintegradedindb" id="123456789" style="position: absolute; top: 36px; left: 123px;">pasdefichier</p>
    &#13;
    &#13;
    &#13;

    1. 如果您有多个元素:
    2. &#13;
      &#13;
      $('.p-class').each(function(){
        if($(this).html().includes('pasdefichier')){
          $(this).remove();
        } else {
          // Do something else
        }
      });
      &#13;
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <p class="p-class">pasdefichier</p>
      <p class="p-class">fichier!</p>
      <p class="p-class">fichier!</p>
      <p class="p-class">pasdefichier</p>
      &#13;
      &#13;
      &#13;

      希望它有所帮助。

答案 1 :(得分:3)

你的第一行中有一个隐藏的字符(请参阅https://www.soscisurvey.de/tools/view-chars.php),目前正在为您提供SyntaxError。当我删除它时,我得到TypeError,因为removeByContentundefined(也许是你的补充)。 但你可以使用第二行来达到你想要的效果(用remove代替hide):

$('.downloadfileexintegradedindb:contains("pasdefichier")').remove();  //to hide
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="downloadfileexintegradedindb" id="123456789" style="position: absolute; top: 36px; left: 123px;">pasdefichier</p>

答案 2 :(得分:3)

从您发布的代码中,第2行和第3行几乎是正确的。

正确的语法是:$('.downloadfileexintegradedindb').find('p:contains(pasdefichier)').remove(); // if you want to remove only p $('.downloadfileexintegradedindb:contains(pasdefichier)').remove(); // if you want to remove the whole container。 见documentation

所以有两种选择,具体取决于你想做什么。 我把两者都包括在内。

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="downloadfileexintegradedindb">
  <p>123</p>
  <p>pasdefichier</p>
</div>

<div class="downloadfileexintegradedindb">
  <p>123</p>
  <p>abc</p>
</div>
&#13;
System.out.println("pr.a = "+pr.a);
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您可以这样做:

div
const term = 'pasdefichier';

// Select all <p> elements and loop thought them
document.querySelectorAll('p').forEach(element => {
  // Check if the current element contains content of term variable
  if (element.innerText.includes(term)) {
    // Remove current element
    element.parentElement.removeChild(element);

  }

});