jQuery: что такое «input [@checked], input [@ type = 'text']»? - PullRequest
4 голосов
/ 27 августа 2010

Я унаследовал некоторый javascript, и на данный момент не все работает так, как ожидалось. Это один камень преткновения:

jQuery("#theForm")
  .find("input[@checked], input[@type='text'], options[@selected], textarea")
  .each(function() { ... });

Я не знаком с синтаксисом [@] (хотя, кажется, ясно, что он хочет, чтобы это произошло) и я не нахожу документацию Может кто-нибудь сказать мне, если это действительно JQuery?

Ответы [ 4 ]

5 голосов
/ 27 августа 2010

@ - это селектор xpath ( имеет атрибут ), который устарел с jQuery 1.1.4.Просто оставьте это или замените их псевдоселекторами:

jQuery("#theForm")
.find("input:checked, input:text, option:selected, textarea")
.each(function() { ... });

См. http://api.jquery.com/category/selectors/

1 голос
/ 27 августа 2010

"[...]" в основном означает "который имеет".

«@ имя» означает атрибут «имя»

Таким образом, «Input [@ type = 'text']» означает элемент ввода текста (<input type='text'>)

'@' - правильный синтаксис для XPath, однако он не используется CSS, и теперь jQuery переключился на формат CSS, поэтому его следует удалить.

1 голос
/ 27 августа 2010

Селектор @ в настоящее время недействителен, вы должны его пропустить:

input[type='text']

Поэтому вы должны удалить все экземпляры @ из вашего кода.

jQuery('input:checked') // gets all checked input fields
jQuery("input[type='text']")   // gets all text input fields
jQuery("select option:selected").text()  // gets text of selected option in dropdown
0 голосов
/ 27 августа 2010

Вот как это сделать:

'@' будет работать только с некоторыми старыми библиотеками jquery, потому что теперь это устарело.

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