Почему мне не нужен метод each для jQuery при работе с этим массивом

0

Я очень новичок в jQuery, поэтому заранее прошу прощения за легкость этого вопроса. У меня есть страница с несколькими текстовыми полями. Я использую селектор, показанный в приведенном ниже коде, чтобы получить все текстовые поля на странице. Я предполагаю, что этот селектор возвращает массив текстовых полей. Я хочу очистить все эти текстовые поля. Для этого я устанавливаю свой val в пустую строку. Однако я думал, что мне нужно будет использовать каждый метод, потому что я имею дело с массивом. Кажется, что он работает без каждого метода. Почему это? Является ли jQuery автоматически знать, как применить val к каждому элементу в выбранном массиве?

$(":text").val("");
Теги:
jquery-selectors

2 ответа

3
Лучший ответ

Да, jQuery автоматически применяет все ваше выражение ко всем выбранным элементам. Метод each используемых jQuery, когда вам нужно выполнить какую-то пользовательскую функцию со всеми выбранными элементами (не стандартная функция). Когда вы используете стандартные функции, вам не нужно использовать each метод. Однако вы можете переписать свой код следующим образом:

$(":text").each(function() { $(this).val(""); });

Но вы понимаете, что это не очень зрелище.

0

пустые все текстовые поля;

$("input:text").val("");

Пустые текстовые поля с определенным классом;

$("input:text.classname").val("");

прозрачные текстовые поля с массивом; предположим, что у вас есть текстовые поля text1, text2, text3,....

for (var i = 1; i <= 10; i++){
  $("#text" + i).val('');
}

также вы можете использовать многие методы с использованием фильтра и каждой функции.

$("input:text").filter(":visible").filter(function(){
  return this.value !== ""; // you can return with any value
}).each(function(){
  something get sum or anything;
});

даже без фильтра вы можете использовать каждый

Ещё вопросы

Сообщество Overcoder
Наверх
Меню