我有一个表,我试图使用下面的代码
派生一个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()
任何建议或意见将不胜感激
答案 0 :(得分:2)
如果它的内容类似于文本框,您可能希望find
输入:
$td.eq(0).find('input').val()
对于复选框,请使用pseudo-selector :checkbox
并确定其checked
属性
$td.eq(0).find(':checkbox').prop('checked')
答案 1 :(得分: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');