我继承了一些javascript,而且目前并非所有工作都按预期进行。这是一个难点:
jQuery("#theForm")
.find("input[@checked], input[@type='text'], options[@selected], textarea")
.each(function() { ... });
我不熟悉[@]
语法(虽然它似乎很清楚它想要发生什么),而且我找不到文档。谁能告诉我这是不是有效的jquery?
答案 0 :(得分:5)
@
是xpath selector(具有属性),自jQuery 1.1.4以来已弃用。只需将其删除,或用伪选择器替换它们:
jQuery("#theForm")
.find("input:checked, input:text, option:selected, textarea")
.each(function() { ... });
答案 1 :(得分:1)
选择器中的@
现在无效,您需要将其保留:
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
答案 2 :(得分:1)
“[...]”基本上意味着“哪个”。
“@ name”表示属性“name”
所以“输入[@type ='text']”表示文本输入元素(<input type='text'>
)
'@'是XPath的正确语法,然而,CSS没有使用它,jQuery现在已经切换到CSS格式,所以应该删除它。
答案 3 :(得分:0)
以下是如何操作:
input:checked
。input[type=text]
option:selected
'@'仅适用于一些旧的jquery库,因为它现已弃用。