2017-09-13 67 views
0

我试图隐藏页面中出现在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来检查是否有不止一个DIV(与类“年”)具有相同的孩子H3的文字。如果是这样,然后隐藏除第一个之外的所有内容,导致如下:

<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> 

任何帮助将不胜感激!谢谢

+1

什么**你**试过? – PredatorIWD

+1

欢迎来到StackOverflow!你到目前为止尝试过什么吗? StackOverflow不是一个免费的代码写入服务,并期望你[**尝试首先解决你自己的问题**](http://meta.stackoverflow.com/questions/261592)。请更新您的问题以显示您已经尝试的内容,在[**最小,完整和可验证的示例**](http://stackoverflow.com/help/mcve)中展示您面临的特定问题。有关详细信息,请参阅[**如何提出良好问题**](http://stackoverflow.com/help/how-to-ask),并参加[**网站**之旅](http :) –

+0

这是关于,据我所知︰https://jsfiddle.net/6jjt4yeo/ – adro21

回答

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选择器更新为更具体,并直接针对具有相同内容的元素。

希望这会有所帮助! :)

+0

我无法让它与我的代码正常工作,下面是我的:https://jsfiddle.net/v6pqsunq/ ...由于某些原因,它仍然显示“1995”无数次而不是一次 – adro21

+0

这是因为你的'.innerHTML'对于每个元素都是不同的。在你的问题中,你展示了相同的'.innerHTML'内容。在你的小提琴中,你需要用'var elements = $('。year> h3> a')替换'var elements = $('。year');'' - https://jsfiddle.net/yqsz9g81/ –

+0

哦,那是我的不好,对此感到抱歉。它非常完美,非常感谢! – adro21

相关问题