2014-11-20 71 views
0

我有兩個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

回答

0

首先,你要改變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

0

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

然後,找到5t h li,您可以使用jQuery find()方法以及:eq但要使用它們,您必須將其轉換回jQuery對象。

所以,最後你最終的東西,如:

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

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.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