检查表行列中的值

时间:2015-11-05 16:54:00

标签: javascript jquery

我有一个html表 - TemplateData。在Tbody里面,我在每一行都有一个专栏&data; uid',这可能不是唯一的。我在按升序显示之前对表进行了排序。它看起来像这样:

<tr id="Tr2" data-uid="1" role="row" class="odd"/>
<tr id="Tr2" data-uid="2" role="row" class="even"/>
<tr id="Tr2" data-uid="2" role="row" class="odd"/>
<tr id="Tr2" data-uid="2" role="row" class="even"/>
<tr id="Tr2" data-uid="3" role="row" class="odd"/>
<tr id="Tr2" data-uid="4" role="row" class="odd"/>

注2出现三次。每个值可能出现不止一次

我可以使用以下方式获取该表:

var table = $('#TemplateData').dataTable();

我的问题是:如果我的值存储在&#39; val&#39;如何查看表格以获取data-uid=val;

所以...像table.rows [val]

这样的东西

从这里检查下一行,看看它的data-uid是否与val不同。如果是这样就传回这个值。如果没有继续到下一行,直到找到不同的值。

...所以

val = 2
get table.row[where val = data-uid]
check next row
if table.rows[data-uid = val] continue until it is not the same, when value is different pass back
var newVal = ?

....任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

这是纯JavaScript,希望它有所帮助。

    var elements = document.getElementsByTagName('tr');
    var elementsLength = elements.length;

    for (var i = 0; i < elements.length; i++) {
        var currentElement = elements[i].getAttribute('data-uid');
        for (var j = i + 1; j < elements.length; j++) {

            var nextElement = elements[j].getAttribute('data-uid');

            if(currentElement !== nextElement) {
                return elements[j].getAttribute('data-uid');
            }
        }
    }

上帝好运,

Zorken17

答案 1 :(得分:0)

即使您没有使用它,id属性也应该是唯一的。

然后,您可以使用jquery select语法来获取具有某些特征的行:

function datavalchanged(value) {
   ..put code to execute at change detection;
}

var group = $('tr[role="row"]');

var desired dataval = group[0].getAttribute('data-uid');
/* additionally put dataval=0 to detect also first data-uid change.  */

获取具有role = row和cycle的所有行,就像数组一样。

for (var i = 0; i < group.length; i++) {
   var row = group[i];
   var value = row.getAttribute('data-uid');
   while (value == dataval) {
       continue;
   }
   datavalchanged(value);
   dataval=value;
   /*ready for next change detection or force exit if interested in first change*/
}

在while循环结束时,该值具有您需要的下一个值。

编辑: 它看起来像我写的它不起作用,如果HTML不完整:

<table>
<tr id="Tr2" data-uid="1" role="row" class="odd" ><td></td></tr>
<tr id="Tr2" data-uid="2" role="row" class="even"><td></td></tr>
<tr id="Tr2" data-uid="2" role="row" class="odd" ><td></td></tr>
<tr id="Tr2" data-uid="2" role="row" class="even"><td></td></tr>
<tr id="Tr2" data-uid="3" role="row" class="odd" ><td></td></tr>
<tr id="Tr2" data-uid="4" role="row" class="odd" ><td></td></tr>
</table>