javascript - 如何删除列表表tr中已经存在的值?

标签 javascript

我有一个示例代码:

<table id="modem_list">
   <tr class="input_1" name="modem">
      <td>iPad 1<input type="hidden" value="1" class="output_1"></td>
   </tr>
   <tr class="input_2" name="modem">
      <td>iPad 2<input type="hidden" value="2" class="output_2"></td>
   </tr>
   <tr class="input_1" name="modem">
      <td>iPad 1<input type="hidden" value="1" class="output_1"></td>
   </tr>
</table>

<input type="button" class="submit" onclick="update()" value="submit" />

和javascript

function update() {
  var table = document.getElementById("modem_list");
var rowCount = table.rows.length;
for(var i=0; i<rowCount-1; i++) {
    for(var j=i+1; j<rowCount; j++) {
        if(table.rows[i] == table.rows[j]) {
            rowCount--;
            for(var k=j; k<rowCount; k++) {
                table.rows[k] = table.rows[k+1];
                table.deleteRow(k);
                k--;
            }
        }
    }
}
}

如何修复结果是:

<table id="modem_list">
       <tr class="input_1" name="modem">
          <td>iPad 1<input type="hidden" value="1" class="output_1"></td>
       </tr>
       <tr class="input_2" name="modem">
          <td>iPad 2<input type="hidden" value="2" class="output_2"></td>
       </tr>
    </table>

最佳答案

假设你想根据它们的类删除重复的 tr 元素,你可以试试这个:

function update() {
    //caches a reference to which table we're working with
    var table = document.getElementById("modem_list");
    //gets all its rows
    var trs = table.rows;

    //iterates through all rows
    for (var i=0; i<trs.length; i++) {
        //stores possible dupes in an array
        var dupes = table.getElementsByClassName(trs[i].className);
        //if there are any dupes.. (more than 1 element with same class)
        if (dupes.length > 1)
            //removes all repeated elements except the first (index 0)
            for (var j=1; j<dupes.length; j++)
                dupes[j].parentNode.removeChild(dupes[j]);
    }
}

JSFiddle

关于javascript - 如何删除列表表tr中已经存在的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11029164/

相关文章:

javascript - Jasmine 使用 requirejs 测试 knockout.js

javascript - JS While 循环中的多个条件

javascript - 有关暂停的相关视频在 JW 播放器 6 中不起作用

javascript - 如何使颜色均匀变暗?

JavaScript:如果 IE9 处于 IE7 或 IE8 兼容模式,我可以检测到它吗?

javascript - ajax 加载的内容与普通内容?

javascript - 在 jQuery 中如何使用偏移量进行迭代?

javascript - Number.parseFloat() 或 parseFloat() 有什么区别?

javascript - 用于 html div 的 Mootools Lightbox?

javascript - 如何使用 img 元素中的图像更改正文背景