Проверка jQuery: переход к определенному элементу по классу - PullRequest
0 голосов
/ 27 марта 2012

Надеюсь, простая проблема:

$(document).ready(function(){
    $("#regform").validate({
        errorPlacement: function (error, element) {
            $(element).parent().next().next().hide();    //works
            $(element).parent().next('div.test').hide(); //doesn't work 
        }           
    });
});


<form id="regform">
    <div class="field">
        <input name="username" id="username" type="text" class="text required" />
    </div>
    <div class="dummy">
        &nbsp;
    </div>  
    <div class="test">
        Hide this text
    </div>
</form>

Я пытаюсь получить div с классом "test", чтобы скрыть ошибку проверки.Обход по одному работает, но включение селектора не работает.

Может кто-нибудь сказать мне, что я делаю неправильно?

Спасибо.

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Наряду с siblings() вы можете использовать nextAll():

$(element).parent().nextAll('.test:first').hide();

JS Fiddle доказательство концепции

Преимущество этого подхода в том, что nextAll() выглядит только для позже братьев и сестер, тогда как siblings() выглядит в обоих направлениях. Я ограничиваю выбор только соответствующим элементом :first просто потому, что предположил, что, если вы хотите специально скрыть, это только элемент первый , который вы хотите скрыть.

0 голосов
/ 27 марта 2012

Это скроет все элементы .test, непосредственно вложенные в форму

$("#username").parent().siblings(".test").hide();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...