如何使用javascript或jquery将焦点设置在第一个LI上?
如何使用如何使用javascript或jquery将焦点设置在第一个LI上?,javascript,jquery,html,Javascript,Jquery,Html,如何使用JavaScript或jQuery将焦点设置在第一个li? 我是初学者 代码: $('ulli')。每个(函数(){ if($(this.find('a')。长度>0){ $(this.find('a').css('color','red'); $(this.find('a').focus() 返回false; } }); 机器人 SQ NVDA 您不能将焦点放在li元素上,除非您设置其选项卡索引,因为默认情况下,它不是可聚焦的元素。如果设置其选项卡索引,则可以使用: /* Put
JavaScript
或jQuery
将焦点设置在第一个li
?
我是初学者
代码:
$('ulli')。每个(函数(){
if($(this.find('a')。长度>0){
$(this.find('a').css('color','red');
$(this.find('a').focus()
返回false;
}
});代码>
- 机器人
SQ
- NVDA
您不能将焦点
放在li
元素上,除非您设置其选项卡索引
,因为默认情况下,它不是可聚焦的元素。如果设置其选项卡索引
,则可以使用:
/* Put focus on the first li element. */
$("#dfruits > li").first().focus();
片段:
/*----JavaScript---*/
$(“#dfruits>li”).first().focus()代码>
-
机器人
-
SQ
-
NVDA
首先,要在非输入元素上设置焦点,需要设置tabindex。其次,您没有a
锚元素,因此在标记中不选择任何内容。解决方法在所有希望接收焦点的li
上设置一个tabindex,这里我只在第一个上设置它
下面是一些代码片段来说明
$('#dfruits').find('li').first().attr( 'tabIndex', -1);// make it able to focus
$('#dfruits').find('li').first().focus();//set focus on li
$('#dfruits').find('li').find('a').first().focus();// set focus to first anchor
//using cached object
var firstAnchor = $('#dfruits').find('li').find('a').first();
firstAnchor.attr('href','#');
firstAnchor.css('color', 'red').focus();
// using each. set href not in markup
$('#dfruits').find('li').find('a').first().each(function() {
$(this).attr('href','#');
$(this).css('color', 'red');
$(this).focus()
});
既然你有了p
,我们将实际使用它
//使用每个
$('#dfruits').find('li').find('p').first().each(function()){
$(this.attr('tabIndex',-1);//使其能够聚焦
$(this.css('color','red');
$(this.focus()
});代码>
- 机器人
SQ
- NVDA
您发布的代码中没有锚元素。顺便说一句,这里不需要任何循环,只要使用$('ulli a').eq(0).css('color','red').focus()如果锚元素具有href
属性,则代码>将起作用。注意:css部分可以使用css规则来处理:ul li a:focus{color:red;}
EDIT:现在我知道你想在li上设置焦点,而不是锚定。您发布的代码确实令人困惑…重点是表单字段聚焦p
?聚焦li
?聚焦不存在的a
?在什么位置设置红色的css?请细化您的问题,为我们提供关于您意图的明确方向。$(“#dfruits”)。由于sizzle EngineeInded从右向左,find(“li”)
会稍微快一点。很好的观察@MarkSchultheiss。我会把你的评论包括在回答中。谢谢你的帮助谢谢你的帮助!这很有帮助。太棒了,谢谢你的帮助!我怀疑有人对此投了反对票,因为以这种方式添加焦点并不是一个好主意/事情,这是正确的,但这里的重点是简单地根据发布的问题回答问题。