dポイントプレゼントキャンペーン実施中!

jQuery.eachの使い方について教えてください。

やりたいことの目的として
テーブルの行に触れたとき背景色を変更したいということです。

ただ、ちょっとやっかいなのは1行に触れたら2行の色を変更させたいというところにあります。
tr1に触れたらtr1とtr2に着色
tr2に触れたらtr1とtr2に着色
tr3に触れたらtr3とtr4に着色
tr4に触れたらtr3とtr4に着色



といった感じです。


$(@@@).hover(function(){
$(this).css({
backgroundColor:'#ff47a3',
color:'#ffffff'
});
},function(){
$(this).css({
backgroundColor:bgColor,
color:color
});
});
});
@@@の部分をうまく配列で書く方法はないでしょうか?
配列を使えばいいかとおもうのですが・・・

通常2行を選択するのであれば
$('#tr1,#tr2').hoverでいいかと思ってはいますが・・・
配列ではどのようにしてあげたらいいのでしょうか?
よろしくお願いいたします。


<table>
<tr id=tr1>
<td></td><td></td>
</tr>
<tr id=tr2>
<td></td><td></td>
</tr>
<tr id=tr3>
<td></td><td></td>
</tr>
<tr id=tr4>
<td></td><td></td>
</tr>
<tr id=tr5>
<td></td><td></td>
</tr>
<tr id=tr6>
<td></td><td></td>
</tr>
</table>

A 回答 (3件)

$('tr:odd,tr:odd+tr').hover(function(){


じゃだめ
’奇数番目のTRとその隣接TR’
    • good
    • 0
この回答へのお礼

これでも大丈夫でした
ありがとうございます

お礼日時:2010/06/09 22:17

2行が1セットである事に意味があるならtbodyで括っちゃえば?


<tbody>
<tr>~~</tr>
<tr>~~</tr>
</tbody>
<tbody>
<tr>~~</tr>
<tr>~~</tr>
</tbody>

$('tbody').hover(~

それとも実際にはもっと複雑で行ごとにidを振らなければ実現できないような構成?
    • good
    • 0
この回答へのお礼

うまいことできました
ありがとうございます

お礼日時:2010/06/09 22:18

ごめん!つくってからきづいた!「jQuery.eachの使い方」じゃなくてもだいじょうぶ?


<!DOCTYPE html>
<title></title>
<bod>
<table border="1">
<tr><th>abc</th><td>def</td></tr>
<tr><th>abc</th><td>def</td></tr>
<tr><th>abc</th><td>def</td></tr>
<tr><th>abc</th><td>def</td></tr>
<tr><th>abc</th><td>def</td></tr>
<tr><th>abc</th><td>def</td></tr>
<tr><th>abc</th><td>def</td></tr>
<tr><th>abc</th><td>def</td></tr>
</table>
<script type="text/javascript">
//@cc_on
document.
/*@if(@_jscript_version > 5.8)
  addEventListener(
 @elif (@_jscript_version <= 5.8)
  attachEvent('on' +
 @else@*/
  addEventListener(
/*@end@*/
 'mousemove', (function( getp ) {
  var tr0,tr1;
  return function( e ) {
   var n = e./*@if(1)srcElement@else@*/target/*@end@*/;
   var tr = getp(n,'nodeName','TR');
   var b,tb;

   tr0 && (tr0.backgroundColor = '#fff', tr0 = null);
   tr1 && (tr1.backgroundColor = '#fff', tr1 = null);
   
   if(tr) {
    tb=getp(tr,'nodeName','TABLE');
    b = (tr.rowIndex / 2 |0) * 2;
    (tr0 = tb.rows[b].cells[0].parentNode.style ).backgroundColor = '#ff47a3';
    (tr1 = tb.rows[b+1].cells[0].parentNode.style ).backgroundColor = '#ff47a3';
   }
  };
 })(function(n,t,v){
   return n?v==n[t]?n:arguments.callee(n.parentNode,t,v):null;
   }),false);
</script>
    • good
    • 0
この回答へのお礼

ちょっと私にはまだ難しい部分もありますが参考にさせていただきます
ありがとうございました

お礼日時:2010/06/09 22:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!