Я написал код, который в основном выбирает все input type=text
элементы следующим образом:
$('.sys input[type=text]').each(function () {}
Как мне изменить его на выбор input[type=text]
или select
?
javascript
jquery
разъем
источник
источник
context form
используется функцияfind form
,find form
она более эффективна, чемcontext form
функция (можно избежать одного вызова). Это справедливо почти для всех используемых селекторов. Затем IMOfind form
более эффективен, чемnormal CSS selector
, потому что обе части селектора относятся к корневому узлу, где вfind form
, только.sys
часть относится к нему, затемinput[type=text],select
выполняется на гораздо меньшем наборе элементов, поэтому он может быть быстрее (но нужно это проверять тестами)$
вызова так важна для вашего приложения, пожалуйста, вообще избегайте использования jQuery :). Этот ответ пытался ответить на вопрос OP, если бы это был вопрос производительности, этого ответа здесь вообще не было бы. В любом случае спасибо за комментарий :), оцените его$
звонка, а всех$
звонков, присутствующих в одном приложении. ИМО, когда у вас есть разные способы сделать одно и то же, я стараюсь всегда выбирать тот, который работает лучше bc.slow performance
===unhappy users
. Кроме того , мы можем как ответить на вопрос , ОР с несколькими вариантами ответов (как вы это делали) и предоставленные преимущества / неудобные каждый из них (как я сделал в комментарии). ИМО важно заметить, почему все ответы разные, но дают одинаковый результат. Кроме того, мы можем написать ванильный код JavaScript, который работает медленноJavaScript
:! ==performance
$
, специально классифицируйте свои div и используйтеdocument.getElemenById/ElementsByClassName
вместо того, чтобы проходить через$
которые выполняется много проверок / синтаксического анализа строк вашего селектора, jQuery не известен за его эффективную библиотеку. И я, честно говоря, не видел, чтобы приложение замедлялось из-за$
слишком большого количества звонков , если у вас есть веб-сайт, на котором есть эта проблема, покажите мне, пожалуйста, мне это очень интересно :)РЕДАКТИРОВАТЬ: На самом деле этот код выше эквивалентен селектору дочерних элементов,
.sys > input[type=text]
если вы хотите, чтобы потомок select (.sys input[type=text]
), вам нужно использовать параметры, заданные @NiftyDude.Больше информации:
jQuery.children()
источник
chilren
вместоchildren
Если у вас есть несколько входов в виде текста в форме или таблице, которые вам нужно перебрать, я сделал следующее:
Что я сделал, так это проверил каждый ввод, чтобы увидеть, установлен ли тип на «текст», затем он захватит этот элемент и сохранит его в списке jQuery. Затем он будет перебирать этот список. Вы можете установить временную переменную для текущей итерации следующим образом:
Это установит текущий элемент на текущую итерацию вашего для каждого цикла. Затем вы можете делать все, что хотите, с переменной temp.
Надеюсь, это кому-нибудь поможет!
источник
для зацикливания:
источник