JQuery выбор родственного узла текущего узла - PullRequest
2 голосов
/ 13 мая 2010

Как выбрать родственный узел текущего узла? Вот фрагмент:

<div id="main">
    <a class="test" href="test.html">Hello</a>
    <div>Some text</div>
</div>

//script
$(".test").click(function() { $("this:parent > div").toggle(); });
or
$(".test").click(function() { $("this ~ div").toggle(); });

Ни одна из этих работ. Я знаю, что могу получить доступ к текущему объекту, используя $ (this), но в этом случае я не знаю, как.

Ответы [ 5 ]

5 голосов
/ 13 мая 2010

Вот несколько вариантов:

$(".test").click(function() { 
    $(this).next('div').toggle(); 
});

$(".test").click(function() { 
    $(this).siblings('div').toggle(); 
});

$(".test").click(function() { 
    $(this).closest('div#main').find('div').toggle(); 
});

Все зависит от того, что еще есть в вашей HTML-разметке, какую вы хотите выбрать.

2 голосов
/ 13 мая 2010

Обязательно не ставьте this в кавычках.

$(".test").click(function() { 
    $(this).next().toggle(); 
});

В jQuery есть много замечательных функций для обхода.

Документы: http://api.jquery.com/category/traversing/

0 голосов
/ 28 мая 2010

Вы можете изменить свой селектор:

$(".test").click(function() { $("~ div", this).toggle(); });
0 голосов
/ 13 мая 2010

Вы пытаетесь переключить #main div? Если это так, не даст ли .parent() родительский div?

http://api.jquery.com/parent/

Я бы подумал, что вам придется использовать что-то вроде:

$(".test").click(function() { $(this).parent("div").toggle(); });
0 голосов
/ 13 мая 2010

Использование .siblings()

http://api.jquery.com/siblings/

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