Javascript jQuery@operator?
所以我有其他人的旧代码,我正试图恢复。我不太熟悉jQuery,但是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,它抛出了一个“未捕获的异常:语法错误,无法识别的表达式:[@
@
操作符指定了什么
代码是:
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"]')