如何运作:
alert(document.getElementById("tableId").rows[7].cells[7].innerHTML);
但这不是:
alert($("#tableId").rows[7].cells[7].innerHTML);
对于上下文,我曾使用.append向表中添加单元格,并且我希望将来能够进一步操纵每个单元格(例如使用.data,这就是我要使用jQuery的原因。
另外,还有其他方法可以访问表格中的各个单元格吗?谢谢。
前一个有效的原因是getElementById()
返回具有rows
属性的HTMLTableElement对象。后者使用不具有该rows
属性的jQuery对象,因此会出现错误。
您可以通过以下两种方法之一从jQuery对象中检索基础元素来解决此问题:
console.log($("#tableId")[0].rows[7].cells[7].innerHTML); // access by index
console.log($("#tableId").get(0).rows[7].cells[7].innerHTML); // get(0)
或者,您可以使用jQuery选择器直接选择所需的单元格:
let html = $('#tableId tr:eq(7) td:eq(7)').html();
对于上下文,我曾使用.append向表中添加单元格,并且我希望将来能够进一步处理每个单元格
在这种情况下,您可以保存对所添加内容的引用,以便无需执行DOM访问操作即可再次使用它。用伪代码看起来像这样:
let $content = $('<tr><td>Foo</td></tr').appendTo('#tableId');
// in some other function later in the page execution...
$content.find('td').text('bar').data('lorem', 'ipsum');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句