到目前为止,我可以将所有通用文本数据放入数组中,但我正在努力处理表格单元格内的选择框。到目前为止,在我的 jQuery 中我有这个
$('.image-button').click(function(){
var myTableArray = [];
$("table#imgList tr").each(function() {
var arrayOfThisRow = [];
var tableData = $(this).find('td');
if (tableData.length > 0) {
tableData.each(function() {
if($(this).has('select').length){
arrayOfThisRow.push($(this + ' select option:selected').text());
} else {
arrayOfThisRow.push($(this).text());
}
});
myTableArray.push(arrayOfThisRow);
}
});
console.log(myTableArray);
});
一旦进入 if has select 语句,它就会失败,并出现我以前从未见过的错误:
未捕获错误:语法错误,无法识别的表达式:[object HTMLTableCellElement]
我不太确定上面的代码有什么问题,所以如果有人可以提供帮助,我将非常感激。
首先,您不能将字符串附加到对象来创建选择器。你需要使用find()
得到select
在当前的td
:
arrayOfThisRow.push($(this).find('select option:selected').text());
其次,您可以使用以下方法缩短代码map()
创建数组:
$('.image-button').click(function(){
var myTableArray = $("table#imgList tr").map(function() {
var arrayOfThisRow = $(this).find('td').map(function() {
return $(this).has('select').length ? $(this).find('select option:selected').text() : $(this).text();
}).get();
return arrayOfThisRow;
}).get();
console.log(myTableArray);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)