2012-09-16 75 views
0

我有這個表:組每對夫婦行的表的獨特元素

<table> 
     <tr class="initial" onmouseover="this.className='highlight'" onmouseout="this.className='initial'"> 
      <td rowspan="2">ELEMENT 1</td> 
      <td class="value">val 1</td> 
     </tr> 
     <tr class="initial" onmouseover="this.className='highlight'" onmouseout="this.className='initial'"> 
      <td>val2</td> 
     </tr> 
     <tr class="initial" onmouseover="this.className='highlight'" onmouseout="this.className='initial'"> 
      <td rowspan="2">ELEMENT 2</td> 
      <td>val a</td> 
     </tr> 
     <tr class="initial" onmouseover="this.className='highlight'" onmouseout="this.className='initial'"> 
      <td>val b</td> 
     </tr>   
    </table>​ 

當鼠標在每一對新人tr應該是彩色的。這是不可能的(例如,如果鼠標在ELEMENT 2單元格上,則「元素2」和「值a」單元格被着色,而「值b」不是)。如何將元素分組在一起?我想要的是:如果我在元素1,值1或值2的單元格上使用鼠標,則(三個)單元格都需要着色。我能做什麼?這裏是我的問題的一個例子:http://jsfiddle.net/PA4y6/

+0

你能澄清的是什麼你想達到什麼目的? – Whymarrh

+0

你可以使用jQuery或其他庫嗎? – haynar

+1

你應該儘量避免使用'on * =「h()」'或'elem.on * = h(){};'你可以把事件監聽器放在'tr'元素上,並且在你的函數中檢查'e'這是第一個參數,並使用它的'e.target'或'e.srcElement'來了解事件本身,它使用父元素('tr'?'table'?)j元素[* delegate *這是另一個更低的元素](http://www.thecssninja.com/javascript/handleevent)。例如,jQuery遍佈各地代表。 –

回答

2

一種方法是將想要分組的行包裝在<tbody>中,並將偵聽器綁定到該行。

看到這個fiddle

+0

這個工作,但它不是嚴格的投訴?我能做什麼? –

+0

哪個嚴格?多個'tbody'在[xhtml strict](http://www.w3.org/TR/xhtml1/dtds.html)'(tbody + | tr +)' –