#jquery #jquery-selectors
#jquery #jquery-селекторы
Вопрос:
Может кто-нибудь помочь мне понять эту строку кода jquery?:
$(this).find('input[type="submit"]:not(.cancel), button').click(function ()
Меня особенно интересует .cancel
, поскольку весь фрагмент кода jquery (не включенный здесь) используется для проверки страницы, и я пытаюсь предотвратить проверку, если пользователь нажимает на кнопку отмены. Я предполагаю, что в приведенной выше строке кода говорится, что нажатие кнопки отправки НЕ является кнопкой отмены, затем продолжить.
Но я не знаю, как обозначить кнопку как cancel .
Ответ №1:
В основном он ищет элементы, расположенные внутри this
, которые имеют следующие требования
- является вводом
- имеет тип = отправить
- не имеет класса
cancel
или
- является кнопкой
Ответ №2:
Хорошие ответы здесь. Возможно, эта аннотированная версия добавляет некоторую ценность.
$(this) // within this jQuery object
.find(' // find all elements
input[type="submit"] // that are input tags of type "submit"
:not(.cancel) // and do not have the class "cancel"
, // or
button // are button elements
')
.click( // and for each of these, to their click event
function (){} // bind this function
);
Комментарии:
1. я хотел бы отметить два пункта в качестве ответа, поскольку это определенно ответило на мой вопрос. Но Джон ответил первым, хотя вы вдавались в подробности. Тем не менее, я дал тебе преимущество. Спасибо, что подробно рассказали о том, что вы сделали.
2. @merk, никаких проблем. Вы должны выбрать тот ответ, который лучше всего подходит для вас; я также поддержал ответ Джона. Я отвечаю на вопросы здесь не только для того, чтобы помочь, но и для того, чтобы учиться. Нет лучшего способа укрепить свое понимание даже, казалось бы, простых вещей, чем попытаться доходчиво объяснить их кому-то другому.
Ответ №3:
Они применяют класс CSS с именем cancel для обозначения кнопки отмены в основном (затем проверяют, что это кнопка без этого класса)
Хотя я не знал, что вы можете использовать звездочку ( *
) в имени класса CSS.
Неважно, это ты пытался выделить код жирным шрифтом в блоке кода
Мне также любопытно, почему они нажимают кнопку отмены типа submit, когда хотят, чтобы она все равно отменялась. (Кажется <input type="button" ... />
, это было бы лучше).
Комментарии:
1.
**
Были (я предполагал) добавлены для выделения, и я удалил их, поскольку они сбивали с толку.2. Да, можно подумать, что он будет использовать его в качестве подстановочной карточки для поиска
3. Ага, теперь понял. Он не щелкал до тех пор, пока после. Ой. ;p
4. о, извините за это — я пытался выделить его жирным шрифтом, не проверял dbl, чтобы увидеть, что текст действительно выделен жирным шрифтом. извиняюсь за путаницу
Ответ №4:
.cancel
является селектором класса. В частности, он ищет input
элементы с установленным атрибутом type submit
, но не имеет cancel
класса. Он также ищет элементы с button
именем тега .
Вы можете «назначить кнопку как отмену» следующим образом:
<input type='submit' class='cancel' />
Ответ №5:
по сути, это селектор, который говорит, дайте мне кнопки отправки без класса отмены и кнопок и примените обработчик кликов. попробуйте найти следующие селекторы
tag .class : нет