По селекторам
Есть такие например элементы форм(могут быть и селекты и др.):
<input type="text" name="Model[field1]" value="zzz111"> <input type="text" name="Model[field2]" value="zzz222"> Мне нужно, зная только значение атрибута name, выбирать элемент. var name = 'Model[field1]'; // 1) //name = $.escapeSelector(name); // 2) alert($(':input[name="' + name + '"]').val()); //2.1 alert($('*:input[name="' + name + '"]').val()); // 2.2 alert($('[name="' + name + '"]:input').val()); // 2.3 Два вопроса: 1) Нужно ли тут экранирование? Работает и без него. 2) Какой лучше(чтобы в опенсорс внести вклад) вариант селектора выбрать? Все работают. Смысл чтобы выбрать именно элемент формы. |
$('[name="' + name + '"]')=) |
Если для себя, то оно все работает.
Но хотелось бы оптимально. Думаю :input убыстрит то выборку, чем все теги на атрибуты перебирать. |
Неа, на самом деле наоборот - замедлит.:)
Потому что :input - нестандартный серлектор, и jquery придётся вручную всё перебирать, в то время как просто [name] будет найден с помощью нативного вызова querySelectorAll. |
:-?
$('селектор_родителя [name="' + name + '"]') |
Можно без селектора, через более быстрые методы.
var element = document.getElementsByTagName(name)[0]; var element = myForm.elements[name]; |
оставлю тогда чисто по атрибуту
|
Часовой пояс GMT +3, время: 21:09. |