Javascript can';t将[autofocus=“autofocus”与:输入组合

Javascript can';t将[autofocus=“autofocus”与:输入组合,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我想构建一个查询,查找具有自动聚焦属性且也是输入(或选择)的元素 使用这个骨架 <html><head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> </head> <body> <div id="maindiv">

我想构建一个查询,查找具有自动聚焦属性且也是输入(或选择)的元素

使用这个骨架

<html><head>
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
</head>
<body>
    <div id="maindiv">
        <form class="someclass">
            <input type="text" />
            <input type="text" autofocus="autofocus" />
        </form>
    </div>
</body></html>
返回一个输入,如预期的那样

$('#maindiv .someclass :input')
返回两个输入

但将两者结合起来总是会产生一个空列表

$('#maindiv .someclass [autofocus="autofocus"]:input')
$('#maindiv .someclass :input[autofocus="autofocus"]')
$('#maindiv .someclass :input').filter('[autofocus="autofocus"]')
这个

$('#maindiv .someclass [autofocus="autofocus"]').filter(':input')
工作并返回一个输入

为什么会这样

$('#maindiv .someclass :input[autofocus="autofocus"]');
这是正确的。看见它在maindiv内部的一个类为someclass的元素中的任意位置获取一个带有autofocs属性集的输入


检查您的实际代码是否有错误

在jQuery的1.6版之前似乎一直是一个bug,在代码运行的1.7版中得到了修复

它在你发布的演示中起作用(thx用于链接btw,酷站点)。但是,相同的代码在我的机器上不起作用。所以这很奇怪。这可能是我的浏览器/os/jquery版本中的一个小错误。thx@KarlsFriend-不确定。我很想建议你检查一下你的文档中是否有这个代码。ready handler,不是你的其他代码在工作,所以这不能解释它,所以我想我不确定。哈-是的-我的小提琴与jq 1.6.4断开-开始吧。
$('#maindiv .someclass :input[autofocus="autofocus"]');