为什么"[value ='']"在IE7中抛出异常并且":not(:not([value ='']))"不是?

Mat*_*els 7 javascript jquery internet-explorer-7

我试图从选择框通过jQuery选择选项标签(值为""的选项).我使用以下选择器:

$("[value='']");
Run Code Online (Sandbox Code Playgroud)

这适用于大多数浏览器,但在IE7中它会引发异常.如果我将它更改为以下(imho等效)选择器,那么它工作正常:

$(":not(:not([value='']))");
Run Code Online (Sandbox Code Playgroud)

我宁愿不使用后者,但不能想到更好的等同于前者.

编辑:

jQuery版本:1.3.1.
例外:
微软JScript运行时错误:异常抛出没有捕获

if(S==null){throw"Syntax error, unrecognized expression: "+ab}
Run Code Online (Sandbox Code Playgroud)

哪里

ab = "value='']"
Run Code Online (Sandbox Code Playgroud)

测试设置:

为了确保我的其他代码没有引起问题,我在以下情况下重现了错误:

<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>
Run Code Online (Sandbox Code Playgroud)

编辑:

链接到错误报告

hal*_*.am 2

我建议您使用最新的 jQuery 版本,这可以解决您的问题。但如果您有充分的理由使用此版本,您应该尝试以下操作:

这应该适用于所有浏览器:

alert( jQuery( 'input[value=]' ) );
Run Code Online (Sandbox Code Playgroud)

使用 JSFiddle 进行测试,没有错误:http://jsfiddle.net/bobkruithof/WUVHj/