所以我有一个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更合适。
感谢您的帮助。
答案 0 :(得分:2)
您可以使用css选择器:contains
轻松完成此操作。 Working JsFiddle
$(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;
输出div现在有过滤的div。如果你想让div保持在主线程上,那么你可以去克隆元素并附加它。