我试图通过jQuery从选择框中选择选项标签(带有值“”的选项)。我使用以下选择器:
$("[value='']");
这适用于大多数浏览器,但在IE7中它会引发异常。如果我将它更改为以下(imho等效)选择器,那么它可以正常工作:
$(":not(:not([value='']))");
我不想使用后者,但不能认为是更好的等同于先验。
jQuery版本:1.3.1。
例外:
Microsoft JScript运行时错误:抛出异常而未捕获到
在
if(S==null){throw"Syntax error, unrecognized expression: "+ab}
其中
ab = "value='']"
为了确保我的其他代码没有引起问题,我在以下情况下重现了错误:
<html>
<head>
<script type="text/javascript" src="jquery-1.3.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
alert($("option[value='']").html());
});
</script>
</head>
<body>
<select>
<option value="">test</option>
<option value="1">test1</option>
<option value="2">test2</option>
</select>
</body>
</html>
答案 0 :(得分:2)
我建议您使用最新的jQuery版本,这将解决您的问题。但如果您使用此版本的原因很充分,请尝试以下方法:
这适用于所有浏览器:
alert( jQuery( 'input[value=]' ) );
使用JSFiddle测试并且没有错误:http://jsfiddle.net/bobkruithof/WUVHj/
答案 1 :(得分:0)
理想情况下,它不应该给你任何错误。尝试指定标记类型$("input[value='']")
,假设您没有任何其他元素可以使用value
属性进行搜索。