jQuery:什么是“输入[@checked],输入[@type ='text']”发现?

时间:2010-08-27 13:55:44

标签: jquery jquery-selectors

我继承了一些javascript,而且目前并非所有工作都按预期进行。这是一个难点:

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

我不熟悉[@]语法(虽然它似乎很清楚它想要发生什么),而且我找不到文档。谁能告诉我这是不是有效的jquery?

4 个答案:

答案 0 :(得分:5)

@xpath selector具有属性),自jQuery 1.1.4以来已弃用。只需将其删除,或用伪选择器替换它们:

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

请参阅http://api.jquery.com/category/selectors/

答案 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)

以下是如何操作:

  • For checked选择器:input:checked
  • 输入文字:input[type=text]
  • 选中:option:selected

'@'仅适用于一些旧的jquery库,因为它现已弃用。