jQuery中的这个选择器语法怎么了?

时间:2011-12-09 03:50:32

标签: javascript jquery xpath jquery-selectors combobox

我正在修复与jQuery 1.1.3.1兼容的jQuery plugin并对其进行升级,以便它可以与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 个答案:

答案 0 :(得分:5)

那是XPath Selector。它们在jQuery 1.2中被弃用,在jQuery 1.3中被删除并移到了pluginSee the 1.3 release notes here。展望未来,jQuery选择器大多支持CSS选择器样式。

$("li[@dataValue='foo']")将成为$("li[dataValue='foo']")

该插件jquery.combobox显然已被放弃,因为没有任何进一步的发展。

使用BoltClock的修正进行编辑。

答案 1 :(得分:1)

只需删除@符号即可。选择器语法现在遵循css选择器(我认为@是来自xpath)。

您还可以简化选择器:

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

编辑:已确认,[@ attrName = attrValue]为xpath