:ここ
$('#foo tr').slice(1,-1).hover(function(){
$(this).find('td').slice(1,-1).toggleClass('highlight');
});
は非常に簡単な例です
.find()
を次のセレクタとともに使用して、それぞれtd
をそれぞれtr
にすることができます。
$('table#tblSchoolList tr:gt(0)').hover(function() {
if ($(this).next().length != 0) {
$(this).find('td:not(:first-child, :last-child)').css("background", "red");
}
}, function() {
$(this).find('td:not(:first-child, :last-child)').css("background", "");
});
マウスが最初と最後のtd
の上にある場合でもこの関数はトリガーされますが、色付けされません。
jsFiddle demo
また、if文のための必要性を取り除く、あなたのtr
秒でセレクタを使用することができます。少しグッディとして
$('table#tblSchoolList tr:not(:first-child, :last-child)').hover(function() {
$(this).find('td:not(:first-child, :last-child)').css("background", "red");
}, function() {
$(this).find('td:not(:first-child, :last-child)').css("background", "");
});
が、私は変換することができました気づきましたすべてのjQueryコードを
CSSルール(最新のブラウザでのみ動作):
table#tblSchoolList tr ~ tr:not(:last-child):hover td ~ td:not(:last-child) {
background: red;
}
もちろん、あなたは常にあなたが古いブラウザとの互換性を必要以上にCSSが何を意味するのかを把握することはできません:)
jsFiddle demo
場合は、色を変更するだけで意味するかあなたのjQueryのソリューションを維持することができますあなたが行を動かすとき、各行の2番目と最後の2番目のセル? – BoltClock
上記のコードは、あなたが要件を記述したときに働いてくれました(最初と最後の間のすべてのtrを強調表示します)。http://jsfiddle.net/cK8Q5/1/ –
はいBoltClockを参照してください。 Ken Redlerはtr範囲の選択を改善しましたが、私の質問は解決しません。セルの数は動的で、概念はtrと同じで、最初と最後のセルではありません。 – Gian