检索HTML表中的特定数据

时间:2018-06-16 08:45:47

标签: javascript dom

我绘制一个表(通过数据表),我需要根据特定条件检索一些特定数据。

这是表格:                                        汤姆     dsdsdsds          OO     60     
                                   琼斯     AA          OO     61               

我需要解析每个tr元素,如果td输入类型复选框包含所选类,我需要检索id =“id”(同一tr)的td值。

我尝试执行以下操作:

var nbr_lignes = document.getElementById('datatable-table').rows.length;

        var i = 0;
        var j = 0;
        while(i < nbr_lignes){
            j=0;
            console.log("ligne: "+i);
            var nbr_colonnes = document.getElementById('datatable-table').getElementsByTagName('tr')[i].getElementsByTagName('td').length; 
            console.log("nb colonnes: "+nbr_colonnes);
            while(j < nbr_colonnes){                   

                console.log("contenu td: "+document.getElementById('datatable-table').getElementsByTagName('tr')[i].getElementsByTagName('td')[j].
                    innerHTML);

                j++;
            }
            i++;
        } 

所以我可以解析每个tr的每个td,但我不知道如何检查当前的td是否包含所选的类,在这种情况下检索td id =“id”的值

如果你能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

这是一个简单的解决方案:你在每一行(tr)中进行计数器和迭代,每当你在其中找到input.selected时,你要求div的值为id的计数器。结果存储在found表中。

https://jsfiddle.net/prowseed/80rmcjgu/19/

var idx = 1;
var found = [];
var trs = [].slice.call(document.querySelectorAll('table tr'));
trs.forEach(function(tr){
    var isSelected = (tr.querySelector('input')).classList.contains('selected');
  console.log(isSelected);
  if(isSelected){
    console.log(document.getElementById('id'+idx));
    var value = (document.getElementById('id'+idx)).innerText;
    found.push({id: idx, value: value});
  }
  idx++;
});

(document.getElementById('result')).innerHTML = found.reduce(function(p, c){ return p + ' \n ' + c.id + ':' + c.value }, '');