Спросите ребенка - PullRequest
       2

Спросите ребенка

0 голосов
/ 07 октября 2011

У меня проблема с JavaScript и HTML.Я хочу выдать сообщение, если значение ввода текста неверно.

    $('input[name="login"]').blur(function() {
    $('.error:nth-child(2)').fadeIn('fast', function() {

    });
});

и код HTML / PHP:

    echo "<div class=\"grid_2 alpha\">Nazwa użytkownika</div><div class=\"grid_2 omega register\">".form_input('login', set_value('login', ''))."</div>";
    echo "<div class=\"error grid_4\">Niepoprawna nazwa użytkownika.</div>";

Чего я не могу добиться, так это на самом деле исчезнуть в этом маленьком div.Ничего не произошло.Что может быть не так с этим кодом?

Все работает, когда я не использую: nth-child ().

1 Ответ

2 голосов
/ 07 октября 2011

Трудно быть уверенным, не увидев больше кода, но я чувствую, что вы ищете что-то вроде:

$(".error").eq(2).fadeIn("fast", function() {
    //Done!
});

eq будет соответствовать только элементам указанного селектора, тогда как nth-child будет смотреть на всех братьев и сестер.Следовательно, приведенный выше код выберет 2-й элемент, соответствующий .error.Вы также можете использовать псевдоселектор :eq, если предпочитаете:

$(".error:eq(2)").fadeIn("fast", function() {});

Разница между eq и nth-child является распространенным источником путаницы. jQuery docs помогает прояснить ситуацию:

Псевдокласс: nth-child (n) легко спутать с: eq (n), даже если оба могут привести кв резко разных согласованных элементов.С помощью: nth-child (n) подсчитываются все дочерние элементы независимо от того, кем они являются, и указанный элемент выбирается, только если он соответствует селектору, прикрепленному к псевдоклассу.С помощью: eq (n) подсчитывается только селектор, присоединенный к псевдоклассу, не ограничиваясь потомками любого другого элемента, и выбирается (n + 1) -й элемент (n на основе 0).

Конечно, я могу быть совершенно неправ, и когда вы публикуете больше кода, мне, возможно, придется удалить этот ответ!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...