Что случилось с этим синтаксисом селектора в jQuery? - PullRequest
3 голосов
/ 09 декабря 2011

Я нахожусь в процессе исправления плагина jQuery , совместимого с jQuery 1.1.3.1, и его обновления таким образом, чтобы он работал с jQuery 1.6.2.

У него есть дваВыражения селектора CSS, которые я предполагаю, устарели.

Первое выражение:

$("li", _dropDownListJQuery).not("ul").not("span").not("[@dataType='optgroup']").each(

И, похоже, @datatype больше не поддерживается.

ВтороеВыражение:

var selectedDropDownListItemJQuery = jQuery("li[@dataValue='" + _originalElementJQuery.val() + "']");

Где

_originalElementJQuery.val()

Возвращает строковое целое число (например, "4").

Снова похоже, что @dataValue больше неподдерживается.

Кто-нибудь знает смысл сохранения эквивалентов?Или этот плагин был разветвлен на github?

Ответы [ 2 ]

5 голосов
/ 09 декабря 2011

Это XPath Selector .Они устарели в jQuery 1.2, исключены в jQuery 1.3 и перемещены в плагин . См. Примечания к выпуску 1.3 здесь .В дальнейшем селекторы jQuery в основном поддерживают стиль селектора CSS.

$("li[@dataValue='foo']") станет $("li[dataValue='foo']")

Этот плагин jquery.combobox , очевидно, был заброшендальнейшего развития не было.

Отредактировано с исправлением BoltClock.

1 голос
/ 09 декабря 2011

Просто удалите символ @. Синтаксис селектора теперь следует за селекторами css (я думаю, что @ от xpath).

Вы также можете упростить ваш селектор:

$("li:not([dataType='optgroup'])", _dropDownListJQuery)

Редактировать: подтверждено, [@ attrName = attrValue] равно xpath

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