Нужна помощь в выборе селектора jQuery - PullRequest
1 голос
/ 29 июля 2011

У меня следующая форма.

<form action="" method="post" id="save-user">
    <button type="button" name="save-user">Save</button>
    <button type="button" name="save-user-close">Save & Close</button>
    <input type="text" name="name" placeholder="Enter your name" required/>
    <input type="email" name="email" placeholder="Enter your email" required/>
</form>

Я не понимаю, как мне создать селектор jQuery для всех элементов ввода и кнопок, так как я не использую атрибут id, я не хочуиспользуйте это в этом случае.Как получить или создать селектор для всех четырех элементов формы.

спасибо.

Ответы [ 4 ]

2 голосов
/ 29 июля 2011

Все вышеприведенные ответы в порядке, но вы можете, и, безусловно, должны учиться и (учиться) использовать расширенные селекторы, такие как , такие как псевдо-классы, селекторы атрибутов и другие .
Вот несколько примеров для вашего случая:

// all the buttons that are children of the container 
//with the attribute id equal to "save-user"
$("#save-user").find('button');

// all the buttons that have their name attribute starting with "save-user"
$('button[name^=save-user]'); 

// same as before, only that we filter the results
// by checking if they contain the text "Save"
$('#save-user').find('button').filter(':contains(Save)');

Вы можете создавать еще более сложные запросы только с помощью селекторов jquery - без необходимости привязывать id или класс к элементам - для удовлетворения ваших потребностей. Конечно, основным недостатком будет эффективность, но если вы не будете злоупотреблять специальными селекторами, ваш стиль кодирования jquery может быть довольно крутым.

1 голос
/ 29 июля 2011
 $("#save-user").find("button, input")
1 голос
/ 29 июля 2011

как насчет ... $('#save-user button,#save-user input').blah();

0 голосов
/ 29 июля 2011

вы можете использовать $(':button[name="save-user"]') для кнопки и $(':input[name="name"]') для ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...