我有一张桌子,里面有一个thead部分和一个tbody部分.我每个人都使用jQuery查找并计算表中的所有TH.这很好.但是同时我想检查tbody中TH的TD是否包含任何输入元素.
这是我到目前为止的内容:
jQuery('#' + _target).each(function () {
var $table = jQuery(this);
var i = 0;
jQuery('th',$table).each(function (column) {
if (jQuery(this).find("input")) {
dataTypes[i] = { "sSortDataType": "input" }
}
else {
dataTypes[i] = { "sSortDataType": "html" }
}
i++;
});
});
希望这些信息对您有所帮助?
最佳答案
dataTypes = $('#' + _target + ' th').map(function(i,th) {
var $table = $(th).closest('table');
var pos = $table.index(th) + 1;
return { "sSortDataType": $table.find('td:nth-child('+pos+')').is(':has(input)') ? 'input' : 'html' };
});
编辑:如果您正在单个表上运行它(在这种情况下,原始示例中的每个调用都没有多大意义),它将变得更加简单:
dataTypes = $('#' + _target + ' th').map(function(pos,th) {
return { "sSortDataType": $(th).closest('table').find('td:nth-child('+(pos+1)+')').is(':has(input)') ? 'input' : 'html' };
});