Мне нужно написать код, который будет зацикливаться на всех строках таблицы, а затем проверить скрытый ввод в каждой строке, чтобы увидеть, содержит ли оно определенное значение, и если да, установите некоторые значения и скрыть строку. Это может быть неуклюжим, но он работал: (переменный «Zeile» содержит первый ряд, правильно инициализирован перед циклом):jQuery: просматривание всех видимых строк таблицы
while (goon) {
var hf = zeile.attr('id');
if (hf) {
hf = document.getElementById(hf.substr(0,hf.length-2) + 'hfMat');
if (hf.value == mid) {
found=true;
goon=false;
zeile.hide();
} else {
cnt +=1 ;
if (cnt<10) {
alert('not found, cnt=' + cnt);
} else {
goon=false;
}
}
}
if (goon) {
zeile = zeile.next('tr');
goon=zeile.length>0;
}
}
Хорошо, в первую очередь, строка 4 с document.getElementById(hf...)
выглядит как допускающие поражение, и это, вероятно, есть - но $("#"+hf).val()
просто не сделал бы этого, вернулся undefined :(
Как я уже говорил, этот код работает нормально. НО тогда у меня был случай, когда две строки содержали одно и то же значение в поле hfMat , и мой скрипт снова скроет первую строку, тогда как она должна продолжаться до второй. «Легко», подумал я, и улучшил утверждение, чтобы определить следующую строку, чтобы выполнить ss (4-я строка с конца), поэтому я изменился с zeile = zeile.next('tr');
на zeile = zeile.next('tr:visible');
Однако, с jQuery 1.3.2 это не работает, и я получаю неопределенный. Что я делаю не так?
И, конечно же, должен быть намного лучший способ сделать этот выбор без такого беспорядочного цикла, просто используя некоторые из более продвинутых механизмов jQuery, но я боюсь, что они превышают меня. Но я был бы рад увидеть некоторые идеи;)
Было бы полезно, если вы можете включить образец вашего HTML. –