2012-12-29 102 views
0

如何僅選擇表格行的輸入?我的意思是點擊每行的所有輸入。選擇tr的輸入

HTML:

<table> 
<tr> 
    <th><input type="text" name="num" value="num"/></th> 
    <th><input type="text" name="a" value="a"/></th> 
</tr> 

<tr> 
    <td> <input type="text" name="num" value=""/> </td> 
    <td><input type="text" name="a" value=""/></td> 
</tr> 
</table>​ 

CSS:

.highlight { background-color: blue; } 

JQUERY:

$(function(){ 
    $("tr input").click(function(){  
     $("tr input").toggleClass("highlight").siblings().removeClass("highlight"); 
    })  
}) 
  • 我有這個在這裏測試:HTTP://jsfiddle.net/yg4n6/
  • 我在這裏我正在尋找的效果的一個例子。這很好,但這只是一張桌子。我試圖做同樣的表內輸入:http://jsfiddle.net/yg4n6/5/
+0

這是爲我工作在Chrome – sdespont

+1

到底是什麼問題?什麼不按預期工作?它應該如何工作?我想你只是忘記了這個問題。 – feeela

+0

這是我嘗試去做的:http://jsfiddle.net/yg4n6/5/這可以單獨使用表格。但是現在我想要在表格內輸入相同的內容 – Nrc

回答

1

首先找到this家長和搜索.highlight去除存在。
比.highlight適用於this - > TR - >輸入

http://jsfiddle.net/yg4n6/2/

$("tr input").click(function(){  
    $(this).closest('table').find('.highlight').removeClass("highlight"); 
    $(this).closest('tr').find('input').toggleClass("highlight"); 
}); 

你也可以這樣做:

$("tr").click(function(e){   
    if(e.target.tagName=='INPUT'){ 
     var $this = $(e.target); 
     $this.closest('table').find('.highlight').removeClass("highlight"); 
     $this.closest('tr').find('input').toggleClass("highlight"); 
    } 
}); 
+0

這個效果很好!謝謝。我不明白在這種情況下使用最接近的。你能解釋一下嗎? – Nrc

+0

@Nrc http://api.jquery.com/closest/它會跳過你的'TH'和'TD's,所以我們可以使用'.find()'來遍歷樹來找到'.highlight' –

+0

我明白第一行中需要.closest。但是在第二行中不會這樣嗎?:$(this).toggleClass(「highlight」); – Nrc