JQuery найти следующий элемент внутри строки таблицы - PullRequest
5 голосов
/ 21 октября 2011

У меня есть эта функция:

$("span.expandimg").click(function(){
  $(this).nextAll(".toggle_container:first").slideToggle("slow");
});

Это нормально работало с:

<span class="expandimg"><a href="#"><img id="iexpand" src="images/expand.png" border="0" /><img id="icollapse" src="images/collapse.png" border="0" /></a></span>&nbsp;<a href="asdfa" class="DSF">First Link</a>

<div class="toggle_container">
Some Text
</div>

Но теперь я помещаю "expandimg" внутри столбца таблицы и "toggle_container" внутри другого столбца. Примерно так:

<tr>
  <td><span class="expandimg">......</td>
  <td><div class="toggle_container">.....</td>
<tr>

Как мне найти элемент "toggle_container" сейчас? Я хочу щелкнуть «expandimg», чтобы развернуть «toggle_container», но он не работает с имеющейся у меня функцией.

Спасибо!

Ответы [ 3 ]

10 голосов
/ 21 октября 2011
$("span.expandimg").click(function(){
    $(this)
        .closest("tr")
        .find("td .toggle_container")
        .slideToggle("slow");
});
0 голосов
/ 21 октября 2011
$("span.expandimg").click(function(){
  $(this).parents("tr").find(".toggle_container").slideToggle("slow");
});

Подходит к родительскому элементу TR, ищет его для .toggle_container.

Должен работать:)

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

С HTML у вас в настоящее время это должно работать -

$("span.expandimg").click(function(){
  $(this).parent().siblings().find(".toggle_container:first").slideToggle("slow");
});

Демо - http://jsfiddle.net/QAkKP/

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