Поиск родителя по селектору
Здравствуйте.
Хочу сделать элементарный скрипт, который при наведении на ссылку добавляет родителю td определенный класс. Подскажите, как это делается? Пока что выбираю как td:parent, но как фиксировать над какой именно ссылкой навели курсор и как определять ее родителя td непонятно.
<table>
<tr>
<td><a href="#">Вячеслав Быков: "Мы были заложниками нашего контракта"</a></td>
</tr>
<tr>
<td><a href="#">Еще один арбитр наказан за свистки в пользу "Локомотива"</a></td>
</tr>
</table>
$(document).ready(function(){
$("table tr td a").mouseover(function(){
$("td:parent").addClass("gray");
});
|
Цитата:
$(document).ready(function(){
$("table tr td a").mouseover(function(){
$(this).closest("td").addClass("gray");
});
);
|
Нашел другое решение. Вот так не лучше?
$("table tr td a").mouseover(function(){
$(this).parent("td").addClass("gray")
});
|
Юрий Шу, я уже отписал. closest именно для поиска ближайшего parenta, удовлетворяющего условию (в кои-то веки в jquery реализовали действительно полезный метод). parent -- вернет непосредственного родителя, а это совсем не то.
|
Цитата:
|
Юрий Шу, да -- parentNode. $().parents("query") вернет ВСЕХ родителей, отфильтрованных по query. Причем если у Вас это td, то вполне возможно, их будет несколько -- вложенные таблицы такие вложенные таблицы. В данном случае нам нужен "ближайший родитель либо сам же елемент, удовлетворяющий выборке".
|
тут у него <td> - как раз непосредственный родитель так что $(this).parent("td") вполне катит, даже так: $(this).parent()
|
micscr, плохой подход. Profit jQuery - в возможность реализовать шаблоно-независимый компонент. А если ссылка потом будет во что-то обернута? $(this).parent() -- вообще никуда не годится. тогда уж $(this.parentNode).addClass, к чему уж мелочиться :)
|
К слову, по-моему в данном случае лучше использовать css, а не js
|
Sweet, согласен, если есть возможность, так и нужно делать. А здесь каким образом можно использовать css?
|
Просто в данном примере в ячейках только ссылки, поэтому классический a:hover будет идеальным.
С другой стороны td:hover, который не работает только в ie6, не сильно уступает js, который можно отключить - и то, и другое не идеальное решение:) |
| Часовой пояс GMT +3, время: 16:47. |