Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.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选择器获取第三个或第四个元素并设置其id_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript 如何使用jquery选择器获取第三个或第四个元素并设置其id

Javascript 如何使用jquery选择器获取第三个或第四个元素并设置其id,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我想获取第三个或第四个元素并设置其id 我发现: $('#menu li:first').attr('id', 'test') 它实际上在工作,但我只得到第一个元素。另一方面,我尝试使用以下方法,但它不起作用 $('#menu li').get(0).attr('id', 'test') 有人能解释一下如何获得想要的元素吗?(例如4或5)并设置它的id以及为什么第二组代码不起作用?尝试使用.eq函数 $('#menu li').eq(4).attr(...) 或 另一方面,get(0)返回

我想获取第三个或第四个元素并设置其id

我发现:

$('#menu li:first').attr('id', 'test')
它实际上在工作,但我只得到第一个元素。另一方面,我尝试使用以下方法,但它不起作用

$('#menu li').get(0).attr('id', 'test')

有人能解释一下如何获得想要的元素吗?(例如4或5)并设置它的id以及为什么第二组代码不起作用?

尝试使用
.eq
函数

$('#menu li').eq(4).attr(...)

另一方面,get(0)返回一个DOM元素,而不是jQuery对象。

您可以使用
eq()
方法:

$('#menu li').eq(2).attr('id', 'third') // selects third element
$('#menu li').eq(3).attr('id', 'fourth') // selects fourth element

eq()
:eq()
都采用目标元素的参数索引,并且始终为

targetElementIndex-1
。因为它是零基的

所以,如果你的目标是第四或第五个元素,那么你必须给出参数3和4

选择id为“菜单”的元素

选择它的所有子体和

$('#menu li').eq(3)
选择第四个(从零开始标记)

还请注意

$('#menu li')[3]

将获取HtmleElement本身,而不是其jQuery包装器。

如注释中所述,get()返回DOM元素

可以在不使用jquery的
attr()
的情况下设置元素的id


.get()
函数返回DOM元素本身,而不是包含DOM元素的jQuery对象,因此不能对其调用jQuery函数(例如
.attr()
)。正如答案已经指出的那样,
.eq()
函数就是用于此目的的。为了记录在案,下面的两个答案都是正确的,如果你想知道为什么
get
没有给你想要的东西,那是因为
get
函数返回的是本机
domeElement
,而不是包装的jQuery集。你如何将相同的id分配给两个不同的元素?@thecodeparadox,是的,id应该彼此不同。你确定
eq(4)和eq(5)吗
目标
第三个和第四个
元素?我认为它应该针对
第五和第六个
元素。不,我确信您正在仔细检查ma代码:),谢谢。
$('#menu li').eq(3).attr('id', 'id_4');
$('#menu li').eq(4).attr('id', 'id_5');
$('#menu')
$('#menu li')
$('#menu').find('li')
$('#menu li').eq(3)
$('#menu li')[3]
$('#menu li').get(3).id = 'test';