无法将[autofocus =“autofocus”]与:input结合使用

时间:2012-01-16 15:26:44

标签: javascript jquery jquery-selectors

我想构建一个查询,找到具有autofocus-attribute的元素,同时也是输入(或选择)。

使用这个Skeleton ....

<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 [autofocus="autofocus"]')

返回一个输入,如预期的那样

$('#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')

工作并返回一个输入。

这是为什么?

2 个答案:

答案 0 :(得分:2)

$('#maindiv .someclass :input[autofocus="autofocus"]');

是对的。见this demo。它正在输入autofocs属性集,在maindiv内部的类someclass的任何地方。

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

答案 1 :(得分:1)

似乎是一个在jQuery 1.6版本之前发生的错误,并且在代码工作的1.7中得到修复。