Javascript jQuery@operator?

Javascript jQuery@operator?,javascript,jquery,operators,Javascript,Jquery,Operators,所以我有其他人的旧代码,我正试图恢复。我不太熟悉jQuery,但是@操作符指定了什么 代码是: v_button_format = $('#' + v_form_id).find('input[@name=button_format]').val(); v_content_type = $('#' + v_form_id).find('input[@name=content_type]').val(); 我使用的是jQuery1.3,它抛出了一个“未捕获的异常:语法错误,无法识别的表达式:[@

所以我有其他人的旧代码,我正试图恢复。我不太熟悉jQuery,但是
@
操作符指定了什么

代码是:

v_button_format = $('#' + v_form_id).find('input[@name=button_format]').val();
v_content_type = $('#' + v_form_id).find('input[@name=content_type]').val();

我使用的是jQuery1.3,它抛出了一个“未捕获的异常:语法错误,无法识别的表达式:[@name=button\u format]”错误。是否存在兼容性问题?

这是一个属性选择器

@
是不再在jQuery中使用的XPath ism。
此外,较新版本的jQuery要求属性值用引号括起来

因此,你应该写

$('#' + v_form_id).find('input[name="content_type"]').val();
也就是说
input[@name=button\u format]
表示名称属性等于button\u format的输入标记

但是,在最新版本的jQuery中,您需要删除@和quote button_格式。这意味着
@
不向后兼容

注意:在jQuery 1.3中[@attr]样式选择器已被删除(它们以前在jQuery 1.2中被弃用)。只需从选择器中删除“@”符号即可使其再次工作

表示名称属性设置为“按钮格式”的输入字段,即:

 <input name="button_format">

这是旧的选择器类型。如果使用jQuery最新版本,请删除if@ 新方法是

input[name="button_format"]
注意:在jQuery1.3中,删除了[@attr]样式选择器(它们是 以前在jQuery 1.2中已弃用)。只需删除“@”符号即可 从您的选择器,以使他们再次工作


它是一个不推荐使用的选择器,您必须将其从代码中删除,因为它不再受支持,并且会导致错误。

这是一种老方法

与(应更改为)相同:


还请注意必填引号

属性,如其他所述


我的2美分:这个符号是受XPath启发而来的,XPath也使用
@

来表示(XML)属性@operator向后兼容当前的jQuery吗?有点离题,但是对于这样的事情,使用
文档不是更好吗。Sizzle的匹配选择器:
expr=expr.replace(/\=\s*([^'\]]*)\s*\]/g,“='$1']”)
没有它们也可以工作-事实上,这是添加它们的代码。@Shadow:我会一直使用jQuery,在内部使用
getElementsByName
,如果它在客户端浏览器上可用的话!jQuery是一个直观的包装器,用于损坏或不受支持的浏览器功能,例如搜索
getE时IE!@Shadow中的CSS3或内存漏洞lementsByName
您将在“find::name”方法中发现它两次,我认为jQuery在使用最有效的方法时非常有效。感谢您对
@
的说明!
input[@name=button_format]
input[name="button_format"]
$('input[name="button_format"]')