获取所有具有特殊内容的div

时间:2016-03-13 01:35:38

标签: jquery html

所以我有一个Facebook对话的html页面。问题是所有的谈话都是混合的。所以我想谈谈我指定的人。该人的姓名在div内容中。这是它的样子:

<div class="thread"> myName, ContactName
  <div class="message">...</div>
  <p>message</p>
  <div class="message">...</div>
  <p>message</p>
</div>

所以现在我只是这样做了:

<p id="test"></p>
<script>
var one = $(".thread").html();
$("#test").
$(".contents").hide();
</script>

我的目标是获取包含ContactName的所有div,并将其显示在test段落中。 我想知道是否有更好的方法来获取所有特定的div而不是使用if one[i].innerHTML.indexOf("word") //do something。我想知道如何直接访问div中的html,我将<p>放在我的示例中,但我认为div更合适。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用css选择器:contains轻松完成此操作。 Working JsFiddle

&#13;
&#13;
$(function() {
  var filterByName = "Raj"; //filter by this name
  var filteredDivs = $('.thread:contains("'+ filterByName +'")');
  $('#output').append(filteredDivs);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="thread"> Raj, ContactName
  <div class="message">...</div>
  <p>message</p>
  <div class="message">...</div>
  <p>message</p>
</div>
<div class="thread"> Max, ContactName
  <div class="message">...</div>
  <p>message</p>
  <div class="message">...</div>
  <p>message</p>
</div>
<div class="thread"> Raj, ContactName
  <div class="message">...</div>
  <p>message</p>
  <div class="message">...</div>
  <p>message</p>
</div>

<hr/>
<h2>
 Output of Filtered Divs
</h2>

<div id="output">
</div>
&#13;
&#13;
&#13;

输出div现在有过滤的div。如果你想让div保持在主线程上,那么你可以去克隆元素并附加它。