1

祝大家好日子,

我有一个包含如下行和值的表

<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() .. 但它似乎不起作用。在这种情况下,有人可以帮助以正确的方式获得第一个孩子。

4

6 回答 6

6

替换这个

$(:first_child).text();

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

或交替

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

这将解决您的问题

于 2013-03-10T10:24:47.363 回答
1

您对选择器的使用:first_child是错误的,您可以通过使用函数children()来获取 tr 的子节点和 ':first' 作为选择器来仅获取第一个这样的选择器来实现:

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

见jsfiddle:http: //jsfiddle.net/2t5J2/1/

于 2013-03-10T10:24:03.447 回答
0

要获得 tr 的第一个孩子,您可以这样做

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

这应该为您提供名称和 ID。

于 2013-03-10T10:24:32.663 回答
0

使用each方法收集数据,然后使用 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/

于 2013-03-10T10:26:12.907 回答
0

使用 $(this).children(":first").text() 获取第一个孩子的文本。

serialData+='&' + $(this).attr('id') + '=' + $(this).attr('id')+'_'+$(this).children(":first").text();
于 2013-03-10T10:33:52.180 回答
0

使用它来获取第一个 TD 的值:

$(this).find("td:first-child").text();
于 2014-04-10T12:48:17.817 回答