针对第二个UL和第五个孩子

问题描述:

我有两个UL在一个页面上具有相同的ID。我想定位第二个UL中的第五个锂。是否有可能做这样的事情?针对第二个UL和第五个孩子

HTML:

<ul id="homepage-blockpaging"> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
</ul> 

<ul id="homepage-blockpaging"> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
</ul> 

提出的jQuery:

$('#homepage-blockpaging:eq(1) li:eq(4)').after('<li>New Item</li>'); 

首选结果:

<ul id="homepage-blockpaging"> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>New Item</li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
</ul> 
+0

为什么你有一个页面上的两个元素具有相同的ID? http://www.w3schools.com/tags/att_global_id.asp你从一开始就为自己而努力。 – lukkea 2014-11-20 18:51:23

首先,你要改变homepage-blockpaging一类,因为你不能有HTML中的相同的ID两个元素!

然后,你就可以完成你想要的东西是这样的:

$(".homepage-blockpaging:eq(1)") // get 2nd ul 
    .find("li:eq(4)") // get the 5th li inside it 
    .after(// create a new li element 
     $("<li>") 
      .text("New Item") 
    ); 

Here的演示。

+0

这解决了我的问题。谢谢! – Industry213 2014-11-20 19:24:10

可以使用找到第二UL:$("ul")[1]

然后,找到5t h li,您可以使用jQuery find()方法以及:eq但要使用它们,您必须将其转换回jQuery对象。

所以,最后你最终的东西,如:

$($("ul")[1]).find("li:eq(4)").after('<li>New Item</li>'); 
+0

这不提供问题的答案。要批评或要求作者澄清,在他们的帖子下留下评论 - 你总是可以评论你自己的帖子,一旦你有足够的[声誉](http://*.com/help/whats-reputation),你会能够[评论任何帖子](http://*.com/help/privileges/comment)。 – 2014-11-20 19:15:25

+0

该代码完全符合您的要求。你是否试图暗示别的东西? – 2014-11-20 19:19:36

+1

欢迎来到Stack Overflow!尽管这段代码可以解决这个问题,但[包括解释](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)确实有助于提高帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 – gunr2171 2014-11-20 20:39:58