[英]CSS ">" selector to select particular div
<html>
<body>
<div> Mango </div>
<div> Apple </div>
</body>
</html>
現在我想使用 CSS 表示法選擇第二個 div,即“Apple”。
我正在寫這樣的符號:: html > body > div[2]
在 HTML5 支持的瀏覽器中使用如下
div:nth-child(2)
{
background:#ff0000;
}
$('body div:nth-child(2)')
在這里試試: http : //jsfiddle.net/D6w3g/
使用 JavaScript,不使用庫,使用 CSS 符號進行選擇的唯一方法是使用document.querySelector()
或document.querySelectorAll()
; 這兩種方法的區別在於,第一種方法querySelector()
返回一個節點,即與傳入選擇器匹配的第一個元素,而第二種方法querySelectorAll()
返回一個 NodeList,其中包含與該選擇器匹配的所有元素選擇器。
樣式元素,例如,使用querySelctor()
:
document.querySelector('body > div:nth-child(2)').style.color = 'red';
再以樣式元素為例,使用querySelectorAll()
:
var elements = document.querySelectorAll('body > div:nth-child(2)');
for (var i = 0, len = elements.length; i < len; i++) {
elements[i].style.color = 'red';
}
或者使用Array.prototype.forEach()
:
var elements = document.querySelectorAll('body > div:nth-child(2)');
[].forEach.call(elements, function(a){
a.style.color = 'red';
});
替代選擇器(如果你想為所有不是:first-child
div
元素設置樣式:
/* selects all div elements that are immediate child of the body
body element and are later-siblings of the div that is the
':first-child' */
body > div:first-child ~ div
使用querySelectorAll()
JS Fiddle 演示(添加了div
元素來說明) 。 使用querySelector()
JS Fiddle 演示(添加了div
元素來說明) 。
或者:
/* Selects all div elements that are the adjacent sibling of
another div element, that is also an immediate child of
the body element */
body > div + div
使用querySelectorAll()
JS Fiddle 演示(添加了div
元素來說明) 。 使用querySelector()
JS Fiddle 演示(添加了div
元素來說明) 。
然而,這些使用querySelector()
和querySelectorAll()
在低於版本 9 的 Internet Explorer 下不起作用(盡管 IE 8 是“不完整的”,因此可能提供足夠的兼容性)。
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.