Как я могу удалить строки таблицы с конкретными идентификаторами? - PullRequest
2 голосов
/ 05 марта 2012

Я пробовал разные решения сейчас, но не могу удалить правильные строки.
Примечание. В HTML5 допустимо использовать числа в идентификаторе.

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 ]

4 голосов
/ 05 марта 2012

У вас две проблемы.Во-первых, вы используете 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();
}

Опять же, если это неверно, пожалуйста, дайте мне знать в комментариях, и я удалю свой ответ.

3 голосов
/ 05 марта 2012

У меня все получилось - http://jsfiddle.net/fbjut/.

Обратите внимание, что вам действительно не следует использовать числовые идентификаторы, вы должны начинать их с 'row' или с чего-то (желательно чего-то более наглядного!).

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

for(var row_id in arr) {
  $('table tr[id='+arr[row_id]+']').remove();
}
​
0 голосов
/ 05 марта 2012
var arr = ['7','9'];

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

демоверсия jsBin


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

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

демо2 jsBin

0 голосов
/ 05 марта 2012

Вы пробовали:

$('table tr#'+arr[row_id]).remove();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...