小编Bap*_*aps的帖子

IE中的jQuery表单输入计数不同

我在jQuery中计算表单元素时遇到了一个奇怪的问题.虽然我可以解决它,但我想知道是否有人知道为什么浏览器之间存在以下示例的区别?

<!DOCTYPE html 
 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>IE Test</title>
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    <meta name="author" content="" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(document).ready(function(){
            alert($('form :input').length);
        });
    </script>
</head>
<body>      
    <div id='wrapper'>
        <div id='header'>
            <form action='#' method='POST'>
                <input type='text' name='title' value='Hotdog Fanatic'></input>
            </form>
        </div>
    </div>

</body>
Run Code Online (Sandbox Code Playgroud)

IE 6/7/8都给了我2的结果,而FF,chrome,opera和safari都计算了1个匹配的元素.

如果我将选择器更改为按任何属性进行过滤,则计数显示正确.例如,form :input[name]或者form :input[type]选择器在IE中只返回一个匹配的元素.

有谁知道为什么会这样?

谢谢!

BAPS.

forms jquery internet-explorer jquery-selectors

1
推荐指数
1
解决办法
804
查看次数