针对第二个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>
首先,你要改变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的演示。
这解决了我的问题。谢谢! – 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>');
这不提供问题的答案。要批评或要求作者澄清,在他们的帖子下留下评论 - 你总是可以评论你自己的帖子,一旦你有足够的[声誉](http://*.com/help/whats-reputation),你会能够[评论任何帖子](http://*.com/help/privileges/comment)。 – 2014-11-20 19:15:25
该代码完全符合您的要求。你是否试图暗示别的东西? – 2014-11-20 19:19:36
欢迎来到Stack Overflow!尽管这段代码可以解决这个问题,但[包括解释](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)确实有助于提高帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 – gunr2171 2014-11-20 20:39:58
为什么你有一个页面上的两个元素具有相同的ID? http://www.w3schools.com/tags/att_global_id.asp你从一开始就为自己而努力。 – lukkea 2014-11-20 18:51:23