Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript或jquery将焦点设置在第一个LI上?_Javascript_Jquery_Html - Fatal编程技术网

如何使用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。我会把你的评论包括在回答中。谢谢你的帮助谢谢你的帮助!这很有帮助。太棒了,谢谢你的帮助!我怀疑有人对此投了反对票,因为以这种方式添加焦点并不是一个好主意/事情,这是正确的,但这里的重点是简单地根据发布的问题回答问题。