JSP 从HTML表中检索列

ezykj2lf  于 2023-11-14  发布在  其他
关注(0)|答案(3)|浏览(145)

如何使用JavaScript从HTML表的一列中获取值?
我想得到一个字段的值,即从HTML表是动态创建的一列。

at0kjp5o

at0kjp5o1#

如果你使用jQuery,你可以使用这个插件

$.fn.getColumn = function(column) {
    return this.find('tr').map(function() {
        return $(this).find('td').eq(column).text();
    }).get();
};

字符串
使用:

$('table').getColumn(1);


如果没有jQuery,

function getColumn(selector, column) {
    var rows = document.querySelector(selector).getElementsByTagName('tr');
    return [].slice.call(rows).map(function(tr) {
        return tr.getElementsByTagName('td')[column].innerText;
    });
}

r9f1avp5

r9f1avp52#

当你动态创建表时,你必须给表分配一些id,所以试试这个:

var allTDs = document.getElementById('<TableId>').getElementsByTagName('TD');
var valueNeeded = allTDs[0].innerHTML;

字符串
如果你想得到所有行中所有第一列的值,可以使用这个:

var allTRs = document.getElementById('<TableId>').getElementsByTagName('TR');
for(var i = 0; i < allTRs .length; i++)
{
    //This is a loop so store the value of each TD or column wherever you want to  
    var valueNeeded = allTDs.getElementsByTagName('TD')[0].innerHTML;
}

crcmnpdw

crcmnpdw3#

这个答案受到了jcubic的启发,这个函数式方法也适用于有标题行的表。

[].slice
  .call(document.querySelector('table').getElementsByTagName('tr'))
  .map(tr => tr.getElementsByTagName('td'))
  .filter(tr => tr.length > 0)
  .map(tr => tr[column_index].innerText);

字符串

相关问题