我试图隐藏在div(具有特定类)中出现的页面上的任何文本不止一次。例如,如果我的页面有:
<div class="year"><h3>2015</h3></div>
<div class="year"><h3>2016</h3></div>
<div class="year"><h3>2016</h3></div>
<div class="year"><h3>2016</h3></div>
<div class="year"><h3>2017</h3></div>
在这个例子中,我想使用jQuery来检查是否存在多个具有相同子h3文本的div(具有“year”类)。如果是,则隐藏除第一个之外的所有内容,结果如下:
<div class="year"><h3>2015</h3></div>
<div class="year"><h3>2016</h3></div>
<div class="year"></div>
<div class="year"></div>
<div class="year"><h3>2017</h3></div>
任何帮助将不胜感激!感谢
答案 0 :(得分:0)
我建议您使用$('.year')
抓取所有元素,然后设置一个数组来存储每个元素的.innerHTML
。然后,您可以循环遍历元素,并检查它们.innerHTML
是否在此数组中。如果不是,它会被添加到数组中。如果它已存在,请隐藏元素:
var elements = $('.year');
var existing_content = [];
for (var i = 0; i < elements.length; i++) {
if (existing_content.indexOf(elements[i].innerHTML) === -1) {
existing_content.push(elements[i].innerHTML);
}
else {
$(elements[i]).hide();
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="year"><h3>2015</h3></div>
<div class="year"><h3>2016</h3></div>
<div class="year"><h3>2016</h3></div>
<div class="year"><h3>2016</h3></div>
<div class="year"><h3>2017</h3></div>
请注意,这假定.year
元素都具有相同的内容。如果只有.year
内容的部分相同,则需要更新elements
选择器以使其更具体,并直接定位具有相同内容的元素。
希望这有帮助! :)