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

这很完美,除了一件事,我有时在 td 中有一个文本框或复选框,我需要检索其值。我用谷歌搜索过 StackOverflow,但我找不到在这种情况下有用的东西

我也试过以下没有运气

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

任何建议或意见,将不胜感激

4

2 回答 2

2

find如果输入类似于文本框,您可能会想要输入:

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

对于复选框,使用伪选择器:checkbox并确定其checked属性

$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 团队建议(查看下面的评论)使用 .find() 而不是 $(target, context); 在您的示例中:

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

应该看起来像:

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