2013-10-23 37 views
0

我有一個表格,每行有一個單選按鈕。抓取某個表格行

<table id="t1"> 
<tr><td><input type="radio" onclick="grab_row()" value=1></td><td>Data1<td>Data11</td></tr> 
<tr><td><input type="radio" onclick="grab_row()" value=2></td><td>Data2<td>Data22</td></tr></table> 

我想獲得一個函數,獲取通過無線電選擇的行的值。

我的功能:

function grab_row() { 
    var radio = $("input[name=t1]:checked").val(); 
} 

該功能只抓住當前選擇的無線電臺ID。

例如,如果第一個無線電被點擊,則返回Data1和Data11。 謝謝

+0

單選按鈕元素需要名稱屬性。 – j08691

+0

首先你的標記是關閉的(如@ j08691提到的),除此之外,一旦你選擇你的單選按鈕,你可以使用[.parent](http://api.jquery.com/parent/)例如'$(「input [name = t1]:checked「)。parent('tr')'獲取父行。 – Jack

+0

你好,當我警覺我得到[對象對象],它似乎好像它在那裏,我如何顯示值? – user2569019

回答

0

這裏是我的,你正在尋找

HTML什麼

<table> 
<tr> 
    <td> 
     <input type="radio" value="1" name="myradio" /> 
    </td> 
    <td>Data1</td> 
    <td>Data11</td> 
</tr> 
<tr> 
    <td> 
     <input type="radio" value="2" name="myradio" /> 
    </td> 
    <td>Data2</td> 
    <td>Data22</td> 
    <td>Data222</td> 
</tr> 

JS

$("input:radio[name=myradio]").click(function() { 
var myvals = []; 
var elem = $(this).parent().next(); 

while (elem.prop("tagName") == "TD") { 
    myvals.push(parseInt(elem.html().substring(4))); 
    elem = elem.next(); 
} 
console.log(myvals); 
}); 

我以爲你只是解釋需要整數「數據」字符串後,但你可以抓住TD元素的全部內容只用html的(),並留下了.substring(4)

0

當您在使用返回多個元素的選擇器時使用.val()時,它只會返回第一個元素的值。相反,您需要使用.each()遍歷它們。

var values = []; 
$("input[name=t1]:checked").each(function(idx, val) { 
    //spin through and collect each val 
    values.push($(val).val()); 
}) 
console.log(values); //view values in console 
+0

當我警告值時,它警告第一個元素,什麼是「idx」? – user2569019

+0

'idx'是從每個循環傳入的索引值。查看[.each()](http://devdocs.io/jquery/each)上的文檔以獲取更多詳細信息。 – adamb

+0

請勿使用警報。使用[console.log()](https://developers.google.com/chrome-developer-tools/docs/console) – adamb

0

這應該是你的jQuery:

$("input[type=radio]").click(function() { 
    console.log($(this).val()); 
}); 

,這應該是你的HTML:

<table id="t1"> 
    <tr> 
     <td> 
      <input type="radio" name="foo" value="1" /> 
     </td> 
     <td>Data1</td> 
     <td>Data11</td> 
    </tr> 
    <tr> 
     <td> 
      <input type="radio" name="foo" value="2" /> 
     </td> 
     <td>Data2</td> 
     <td>Data22</td> 
    </tr> 
</table> 

jsFiddle example

請注意,您還可以使用$("input[name=foo]")代替$("input[type=radio]")

+0

有什麼我必須建立,因爲我看不到任何結果,即時通訊使用Firefox btw。謝謝 – user2569019

+0

Firebug擴展將會有所幫助。或者使用Chrome並使用F12打開開發工具。 – j08691

+0

ahh好酷,我看到控制檯的結果,但不是行中的所有數據,但無論如何感謝 – user2569019