我有一个表,在其中提取数据并将其添加到数组数组中。问题是,如果表单元格之一为空,则它在数组中显示为“ undefined”。我尝试使用if如果最后一个元素未定义,如果使用.pop()则应删除该元素。我仍然得到未定义的元素。这是我的代码和现场演示
HTML:
<table id="contactlisttable">
<tr>
<th>Name</th>
<th>Title</th>
<th>Phone</th>
</tr>
<tr>
<td class="contactlist contactlistlastfirst">Joey</td>
<td class="contactlist contactlisttitle">webdesigner</td>
<td class="contactlist contactlistphone"></td>
</tr>
<tr>
<td class="contactlist contactlistlastfirst">Anthony</td>
<td class="contactlist contactlisttitle">webdesigner</td>
<td class="contactlist contactlistphone">5555555</td>
</tr>
</table>
//IE9+ compatable solution
$(function(){
var results = [], row;
$('#contactlisttable').find('th, td').each(function(){
if(!this.previousElementSibling){ //New Row?
row = [];
results.push(row);
if($(this) === 'undefined'){//Remove undefined elements
row.pop();
}
}
row.push(this.textContent || this.innerText); //Add the values (textContent is standard while innerText is not)
});
console.log(results);
});
无需执行条件语句,只需利用html结构即可。首先按表行选择,然后迭代子项td
或th
元素。您还可以利用jQuery的优势text
来进行功能检测。jQuery的文本将更加可靠。
var results = [];
$('#contactlisttable tr').each(function(){
var row = [];
$(this).find('td,th').each(function(){
row.push($(this).text());
});
results.push(row);
});
console.log(results);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句