1

以下のコードを使用してJSONオブジェクトを導出しようとしているテーブルがあります

var tbl = $('#myTable tr:has(td)').map(function(i,v){
    var $td = $('td', this);
    return{
        id:$td.eq(0).text(),
        column1:$td.eq(1).text(),
        column2:$td.eq(2).text()

    }
    }).get();

これは、1 つのことを除いて完璧に機能します。値を取得する必要がある td 内にテキストボックスまたはチェックボックスがある場合があります。GoogleでStackOverflowを検索しましたが、この状況で機能するものは見つかりませんでした

私も運がないのでフォローしようとしました

id:$td.eq(0).val()
id:$td.eq(0).childern().val()

提案やアドバイスをいただければ幸いです

4

2 に答える 2

2

findテキストボックスのようなものであれば、おそらく入力が必要になるでしょう:

$td.eq(0).find('input').val()

チェックボックスの場合、疑似セレクター:checkboxcheckedを使用してそのプロパティを決定します

$td.eq(0).find(':checkbox').prop('checked')
于 2012-12-03T13:30:38.520 に答える
0

値とテキストが必要な場合は、次のようなものを使用します。

id:$td.eq(0).find(':checkbox').attr('value') + $td.eq(0).text();

値のみが必要な場合:

id:$td.eq(0).find(':checkbox').attr('value');

ところで、jQuery チームは $(target, context); の代わりに .find() を使用することを推奨しています (以下のコメントを確認してください)。あなたの例では:

var $td = $('td', this);

次のようになります。

var $td = $(this).find('td');
于 2012-12-03T13:32:10.703 に答える