2017-09-13 66 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

相關問題