jQuery 1.3.x 升级注意事项:选择器语法变更与 XML 查找修正

作者:百宝袋时间:2026-10-23 15:43:35浏览:87

本文详解 jQuery 从 1.2.x 升级至 1.3.x 的关键变更。重点说明选择器中必须移除属性前的 @ 符号,否则会导致错误。同时指出在 XML 文档中直接链式查找节点可能失效,需改用 .find() 方法确保正确获取元素。

1. Selector

jQuery 1.3 选择器语法变更

获取 input 标签中 name 属性值为 go 的元素。


代码示例如下:

$("input[@name=go]").val(); // 此写法在 jQuery 1.2.x 版本中有效
$("input[name=tag]").val(); // 升级至 1.3.x 后,必须移除 @ 符号,否则将引发错误

所有原选择器中包含 @ 符号的部分均需移除,例如 [@selected] 或 [@checked] 等。


属性选择器详解

补充说明


[attribute]:表示存在指定属性。


[attribute=value]:表示属性值等于 value。


[attribute!=value]:表示属性值不等于 value。


[attribute^=value]:表示属性值以 value 开头。


[attribute$=value]:表示属性值以 value 结尾。


[attribute*=value]:表示属性值包含 value。


注意:[attribute=value] 与 [attribute*=value] 看似相似,但存在本质区别。


前者要求完全匹配,后者仅要求包含。有观点认为后者用于获取多个元素,这种理解并不准确。


选择器匹配注意事项

补充说明:


使用 [name='test'] 选择器时,若所有元素均为 span 标签,则能正常获取结果。


但若混合存在 <a name=test> 或 input 元素,则可能仅匹配到其中一个,导致结果不完整。


XML 节点查找修正

此外


直接使用 $("XmlParentNode XmlChildNode[name='xx']").xx 这种方式进行查找,可能会定位错误。


应改为 $("XmlParentNode").find("XmlChildNode[name='xx']").xx,这样才能正确获取目标元素。


参考资料:


3 Quick Steps for a Painless Upgrade to jQuery 1.3
作者最新文章