Я только начинаю работать с jQuery и очень рад этому.
Моя причина публикации в том, что я написал несколько jQuery, который выполняет требуемую задачу, но я подозреваю, что ему не хватает элегантности ...
Я пытаюсь получить все строки таблицы, которые имеют:
1) класс «предмет»
2) дочернее поле ввода текста, которое имеет значение
HTML:
<tr class="item">
<td class="sku">[dynamic]</td>
<td class="quantity">
<input type="text" name="[dynamic]" maxlength="3" /></td>
</tr>
JQuery
...
var selections=$(".item>.quantity>:text[value!='']").parent().parent();
...
Код, который я разместил выше, работает, но есть две вещи (по крайней мере?), Которые пахнут немного забавно.
Код запаха № 1:
Я использую '.parent (). Parent ()' в конце, чтобы захватить всю строку. Есть ли какой-то способ, которым я могу просто сказать «дать мне все tr с классом« item », где у дочернего текстового ввода есть значение» вместо возврата по иерархии в конце?
Код запаха № 2:
Я не могу найти способ «обрезать» значение ввода текста во время выделения, чтобы гарантировать, что пробелы не интерпретируются как содержимое. При моем текущем методе мне придется «обрезать» и проверять снова во время цикла .each, который кажется излишним.
Дайте мне знать, если вы видите «лучший путь»?
Спасибо,
Ричард