Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как найти родителя в выборке (https://javascript.ru/forum/jquery/16280-kak-najjti-roditelya-v-vyborke.html)

shaltay 01.04.2011 15:54

Как найти родителя в выборке
 
Доброго времени.
Есть таблица table.
при наведении на любой td должны подсветиться все td в строке tr.

Делаю так:
$('tr[id=tata] td').hover(function(){
	$(this).parent().css({'background':'yellow','border':'solid 2px'});
},function(){
	$(this).parent().css({'background':'none','border':'none'});
});


Но тогда он применяет стиль к tr, на котором и так есть свои стили. Нужно, чтобы функция применялась именно к td-шкам.

Matre 01.04.2011 15:56

$(this).siblings()

Sweet 01.04.2011 16:02

Эмм.. Если нужно подсветить строки, почему бы не вешать .hover на tr?

Matre 01.04.2011 16:07

$("#tata").bind("mouseover mouseout", function (e) {
	$("td", this).css({8 :{'background':'yellow','border':'solid 2px'}, 9: {'background':'none','border':'none'}}[e.type.length]);
});


:)

shaltay 01.04.2011 16:40

Цитата:

Сообщение от Sweet (Сообщение 98882)
Эмм.. Если нужно подсветить строки, почему бы не вешать .hover на tr?

На tr и так повешены заливки фона. При чем сделано это функцией
$('#xxx tr:even').css('background','#E8E1A0');

чтобы они подсвечены были через одну. Соответственно, если наложить hover сверху, то во второй части функции не понятно будет, делать строку с фоном или без нее.
В этом и вся проблема..

Matre 01.04.2011 16:49

Вы чудной.
На Вас жёстко наехали, намекнув, что Вы вообще не так всё делаете... и Вы ему ответили.
А я же вполне вежливо — да чего там, без лишних слов — выложил Вам код, а Вы не удосужились ответить мне.
Это хамство.

shaltay 01.04.2011 18:09

Цитата:

Сообщение от Matre (Сообщение 98895)
Вы чудной.
На Вас жёстко наехали, намекнув, что Вы вообще не так всё делаете... и Вы ему ответили.
А я же вполне вежливо — да чего там, без лишних слов — выложил Вам код, а Вы не удосужились ответить мне.
Это хамство.

Да, сорри. Просто ответив ему, стал искать, что значит siblings(), а потом отлучился. Вот сейчас буду стараться припаять код к себе.
А почему второй код на js, на нем проще сделать чем на jquery?
Заранее спасибо.

shaltay 01.04.2011 18:14

Цитата:

Сообщение от Matre (Сообщение 98879)
$(this).siblings()

$(this).siblings() превзошли мои ожидания. Это то, что мне нужно. Спасибо огромное!

Matre 01.04.2011 18:15

del

shaltay 01.04.2011 18:22

Вот сама задумка и ее реализация.

$('#price tr:even').css('background','#E8E1A0');	//каждая вторая строка подсвечена

$('tr[id=prname] td').hover(function(){//при наведении на любой элемент подсвечивается  и обрамляетсявся вся текущая строка
	$(this).siblings().css({'background':'#ecda6a'});
	$(this).css({'background':'#ecda6a'});
	$(this).parent().css({'border':'solid 2px'});
	
},function(){ // при отведении все возвращается на место.
	$(this).siblings().css({'background':'none'});
	$(this).css({'background':'none'});
	$(this).parent().css({'border':'none'});
});


Часовой пояс GMT +3, время: 13:44.