Исходя из этого очень простой HTML структуры:Почему nth-child (1) применяется ко всем детям?
<div>This is a cube</div>
<div>This is a triangle</div>
<div>This is a big, green circle</div>
Я создал следующий JQuery:
$(document).ready(function() {
$("div:nth-child(1)").addClass("cube-text text");
$("div:nth-child(2)").addClass("triangle-text text");
$("div:nth-child(3)").addClass("circle-text text");
$("div:nth-child(1)").wrap("<div class='cube shape'></div>");
$("div:nth-child(2)").wrap("<div class='triangle shape'></div>");
$("div:nth-child(3)").wrap("<div class='circle shape'></div>");
$(".shape").wrap("<div class='inner'></div>");
$(".inner").wrap("<div class='outer'></div>");
$(".outer").wrap("<div class='column'></div>");
$(".outer:nth-child(1)").addClass("cube-anim");
$(".outer:nth-child(2)").addClass("triangle-anim");
$(".outer:nth-child(3)").addClass("circle-anim");
});
По какой-то причине, последние три строки, кажется, не будет работать, как задумано. Предполагается, что они должны добавить соответствующий класс в последовательные экземпляры «.outer» div, которые были созданы в предыдущих строках. Я попытался с помощью различных альтернатив данного конкретного синтаксиса, таких как ...
div .outer:nth-child
.column .outer:nth-child
.column:nth-child
И несколько других, в то пробах и ошибках попытки получить желаемые результаты.
Я пытаюсь сделать каждый контейнер контейнера «.outer» дополнительным классом, который будет вызываться CSS3 для рендеринга анимаций на основе @keyframe.
Вот jsfiddle: http://jsfiddle.net/5NEPu/
Почему вы просто не добавляете классы и обертки на основе текста в элементе? – adeneo
ответил на аналогичный вопрос здесь - http://stackoverflow.com/questions/19909458/selecting-nth-of-type-in-selenium/19909750#19909750 – sircapsalot
, потому что это задача, с которой мне поручено, adeneo –