2013-03-10 79 views
1

好日子所有,選擇值 - jQuery的

我有行和值的表像下面

<tr id="value_12"> 
    <td>firstanme_1</td> 
    <td>lastname_1</td> 
</tr> 
<tr id="value_14"> 
    <td>firstanme_2</td> 
    <td>lastname_2</td> 
</tr> 

,我使用jQuery是(這是錯誤的)。

$('#table_id tr').each(function() { 
    serializedData += '&' + $(this).attr('id') + '=' + $(this).attr('id')+'_'+$(:first_child).text(); 
}); 

我期待與TR一起只提取每個TR的第一個名字即屬性的serialisedData字符串作爲最後一部分(最後一個值,分隔符「_」後)。

我可能是像$(this).firstchild()。text()..但它似乎不工作。 有人可以請幫助以正確的方式得到第一個孩子在這種情況下。

回答

6

替換此

$(:first_child).text(); 

隨着

$(this).find("td:first").text(); 

或者或者

$(this).find("td:eq(0)").text(); 

這將解決您的問題

1

您選擇:first_child是錯誤的使用情況,您可以通過使用功能children()獲得TR的子女和實現這一目標「:第一個」作爲一個選擇只拿到第一個是這樣的:

$('#table_id tr').each(function() { 
    serializedData += '&' + $(this).attr('id') + '=' + $(this).attr('id')+'_'+$(this).children(":first").text(); 
      }); 

看到的jsfiddle: http://jsfiddle.net/2t5J2/1/

0

獲得TR的第一個孩子,你可以做

$('#table_id tr').each(function() { 
    var firstName = $("td", tr)[0].val(); 
    var id = $(tr).attr('id').split("_")[1]; 
}) 

這應該給你名字和身份證。

+1

你'[0]'是不正確 - 它提取原始DOM元素。也沒有稱爲'tr'的變量。 – Alnitak 2013-03-10 10:27:43

0

使用each方法COLLEC t數據,然後使用jQuery $.param函數構造查詢字符串。好處是,這將是正確編碼爲您提供:

var params = {}; 
$('table tr[id^="value_"]').each(function() { 
    params[this.id] = $(this).find('td:first').text(); 
}); 
alert($.param(params)); // alerts: value_12=firstanme_1&value_14=firstanme_2 

http://jsfiddle.net/EwSsu/

0

使用$(本)。兒童(「:第一個」)。文本()用於獲取第一個孩子的文本。

serialData+='&' + $(this).attr('id') + '=' + $(this).attr('id')+'_'+$(this).children(":first").text(); 
0

使用此獲得第一個TD的價值:

$(this).find("td:first-child").text();