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();
});

serialisedData 文字列の最後の部分 (区切り文字 '_' の後の最後の値) として、各 tr の最初の ie firstname と tr 属性のみを抽出しようとしています。

i は $(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

最初の子のテキストを取得するには、 $(this).children(":first").text() を使用します。

serialData+='&' + $(this).attr('id') + '=' + $(this).attr('id')+'_'+$(this).children(":first").text();
于 2013-03-10T10:33:52.180 に答える
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 に答える