2015-08-30 66 views
-2

我在CSS選擇器很新,我試圖做到這一點選擇標籤。我想選擇滿足一些條件的第一個div,比方說div[id*='ample']然後,選擇所有div與相同的條件,但不是第一個div的孩子。符合條件

<div id="example1"> 
    <div id="example2"> 
    </div> 
</div> 
<div id="example3"> 
</div> 

所以我希望的是得到了divid='example1'id='example3'。 最好是如果例如divid='example3'不必是第一個div的兄弟。

你知道該怎麼做嗎?

我在想:

div = css_select("div[id*='ample')") 
while True: 
    divs.append(div) 
    div = div + css_select("div[id*='ample')") 

但它可能一文不值。

+0

您應該避免使用ID,用於此目的這些div的父(該body例如)做到這一點,他們不是這意味着以這種方式工作,考慮使用類(你可能知道這一點) – Mohibeyki

+0

你應該編輯這個問題,而不是[重新發布](http://stackoverflow.com/questions/32295473/find-tags-using-css-selector - 丁不-其後裔)。 – BoltClock

回答

0

你有很多方法來選擇JavaScript中的元素,這取決於html。

回到你的問題:您可以通過使用

NodeList.prototype.forEach = Array.prototype.forEach; 
 

 

 
/* 'body > *[id*="ample"]' - you can replace the 'body' selector with other parent selector */ 
 
document.querySelectorAll('body > *[id*="ample"]').forEach(function(el) { 
 
    el.classList.add('red'); 
 
});
div { 
 
    height:10px; 
 
    border:1px solid #000; 
 
} 
 

 
.red { 
 
    border:1px solid red; 
 
}
<div id="example1"> 
 
    <div id="example2"> 
 
    </div> 
 
</div> 
 
<div id="example3"> 
 
</div>

+0

這不適合我,因爲div不必是身體的小孩,它可以是孫子等等。 –