【发布时间】:2012-12-04 13:33:26
【问题描述】:
我正在尝试为不支持 autofocus 属性的浏览器提供支持,使用类似这样的方法:
<input type="text" autofocus/>
<input type="text" autofocus="autofocus"/>
<input type="text"/>
<script type="text/javascript">
$("input[autofocus]").first().focus();
</script>
但是,该选择器会返回 IE7 的所有输入元素,包括那些没有“自动对焦”属性的元素。它适用于 IE8+,我已经使用 jQuery 1.6.4、1.7.2 和 1.8.2 进行了测试。我这里有一个 jsfiddle:http://jsfiddle.net/HSC7K/4/。
这些 jQuery 票似乎相关,但已关闭:
http://bugs.jquery.com/ticket/5637
http://bugs.jquery.com/ticket/7874
编辑: 更新jsfiddle:http://jsfiddle.net/HSC7K/6/
【问题讨论】:
-
如果您使用的是 HTML5,则需要包含一个 shiv 以允许自动对焦等元素。你做到了吗?
-
我使用的是自定义属性,而不是 HTML5 元素,所以 AFAIK 它不需要 shiv。我更新了小提琴以显示自定义属性正在工作,但如果该属性被称为“自动对焦”,它就不起作用。
-
自定义属性在 XHTML 中无效 - 您的文档类型是什么? stackoverflow.com/questions/2413147/… 自动对焦是 HTML5 中的新功能
-
我正在使用 HTML5 文档类型 - 。 stackoverflow.com/questions/2412947/…。诚然,IE
-
你试过这样的吗? $('[autofocus]:not(:focus)').eq(0).focus();
标签: jquery html jquery-selectors