如何删除具有特定ID的表行?

时间:2012-03-04 22:57:13

标签: jquery html5

我现在尝试了不同的解决方案,但我无法删除正确的行 注意:在HTML5中,使用ID中的数字是有效的。

HTML

<table>
  <tr id="2"></tr>
  <tr id="5"></tr>
  <tr id="7"></tr>
  <tr id="9"></tr>
</table>

JS

var arr = new Array();
arr[0] = '7';
arr[1] = '9';

for(var row_id in arr) {
  $('table tr[id='+row_id+']').remove();
}

结果总是一样 - 我的一些顶行被移除,而不是底部两行 我在这段代码中缺少什么?

更新:这是我的小提琴 - http://jsfiddle.net/6PkMK/1/

4 个答案:

答案 0 :(得分:4)

你有两个问题。首先,您使用key代替array[key]。让我做一个快速演示......

var array = ["a", "b", "c"];

for (var i in array)
{
    console.log(i); //0, 1, 2
    console.log(array[i]); //"a", "b", "c"
}

你得到了照片,对吗?第二个问题是,我认为你是以错误的方式使用选择器变量。在Jquery中,当你想要选择一个带有和id的元素时,你会这样做:$(#id),而不是你做的那样。

试试这个:

var arr = new Array();
arr[0] = '7';
arr[1] = '9';

for(var row_id = 0; row_id < arr.length; row_id ++) { //The proper way to iterate
  $('#' + arr[row_id]).remove();
}

同样,如果这是错误的,请在评论中告诉我,我会删除我的答案。

答案 1 :(得分:3)

我已经开始工作了 - http://jsfiddle.net/fbjut/

请注意,您确实不应该使用数字ID,您应该使用'row'或其他内容(最好是更具描述性的内容)来启动它们。

var arr = new Array();
arr[0] = '7';
arr[1] = '9';

for(var row_id in arr) {
  $('table tr[id='+arr[row_id]+']').remove();
}
​

答案 2 :(得分:0)

var arr = ['7','9'];

for(i=0;i<arr.length;i++) {
  $('#'+arr[i]).remove();
}

demo jsBin


/*
var arr = [];
arr[0] = '7';
arr[1] = '9';
*/
var arr = ['7','9'];

for(var row_id in arr) {
  $('#'+arr[row_id]).remove();
}

demo2 jsBin

答案 3 :(得分:-1)

你试过了吗?

$('table tr#'+arr[row_id]).remove();