Я столкнулся с очень странным поведением селектора nth-child.JQuery CSS nth-child selector
Когда я вызываю функцию BackColor1() мои визуальные выглядит как:
Что является неправильным. И если я позвоню BackColor2() все выглядит нормально.
Может кто-то пожалуйста, объясните, где хитрость и то, что я сделал неправильно с BackColor1() функции?
Вот мой пример HTML
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//BackColor1();
//BackColor2();
});
function BackColor1() {
$("li:nth-child(2n+1) > div").css({ "background": "#F2F2F2" });
}
function BackColor2() {
$("li").each(function (key, val) {
if (key % 2 == 0) {
$(this).children("div").css({ "background": "#F2F2F2" });
}
});
}
</script>
</head>
<body>
<ul>
<li>
<div>Video Streaming</div>
<ul>
<li><div>VOD</div></li>
<li><div>Progressive Streaming</div></li>
</ul>
</li>
<li><div>Middle Lesson Without Chapter</div></li>
<li>
<div>File Download</div>
<ul>
<li><div>Direct Download</div></li>
</ul>
</li>
<li><div>Pre Last Lesson Without Chapter</div></li>
<li><div>Last Lesson Without Chapter</div></li>
</ul>
</body>
</html>
Если бы я догадываюсь, 'ли: п-й ребенок (2n + 2)' выбирает каждый уль отдельно, затем применяет css ко всем нечетным элементам в этой ul. Я не знаю, как добиться желаемого поведения. – Sumurai8