ionicman
@ionicman

Вопрос к гуру JQuery — почему не работает вот такой хитрый селектор?

Есть такой html:



&lt;tr&gt;<br/>
 &lt;td onclick=&quot;$(':parent~tr.dsc:first',this).toggle()&quot;&gt;...&lt;/td&gt;<br/>
 &lt;td&gt;...&lt;/td&gt;<br/>
&lt;/tr&gt;<br/>
&lt;tr class=&quot;dsc&quot;&gt;<br/>
 ...<br/>
&lt;/tr&gt;<br/>




Смысл: по клику на TD скрыть/показать tr с классом dsc.

Если тоже самое сделать с помощью parent() или next() то все работает.



С точки зрения семантики — получили родителя (TR), от него пошли искать next sibling (TR.dsc) и взяли из коллекции первый элемент — вроде все верно.



Лезть смотреть в JQ не сильно охота, мож кто сталкивался?
  • Вопрос задан
  • 3069 просмотров
Пригласить эксперта
Ответы на вопрос 2
taliban
@taliban
php программист
$(':parent', elem)
ищет _внутри_ элемента его родителя, это не правильно. Делайте проще:
$(this).parent().next().toggle();
Это будет быстрей (никаких разборов селекторов)
Это будет проще (при изменении не надо ломать голову разбираясь в селекторах)
Это будет работать =)
+ в каждый из методов можно вставить селектор для фильтрации, если нужно
Ответ написан
mark_ablov
@mark_ablov
this — не нужен.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы