我正在尝试生成一些jQuery,它会找到具有class属性的最接近的列表项,并在它之后直接插入一些html?
我有以下内容但这需要工作..它来自on click事件()
$('.controls').on('click.add', function()
{
$(this).parent().closest('li.active').insertAfter('<p>HTML</p>');
});
任何人都可以提供帮助 - 在这种情况下,我想要选择第3个li(基于最后一个'活动'列表项的类) - 并在其后插入一些简单的HTML。
<ul class="controls">
<li class="active"></li>
<li class="active"></li>
<li class="active"></li>
<li class="inactive"></li>
<li class="inactive"></li>
</ul>
<a href="#" class="add"> Add Prize</a>
答案 0 :(得分:1)
“最简单的解决方案是使用pop,它访问数组中的最后一个元素。
var lastClass = $('div').attr('class').split(' ').pop();
请注意,pop也会从数组中删除该元素,但由于您没有对其进行任何其他操作,因此这不是问题。“
答案 1 :(得分:0)
尝试这样做:
$('.add').on('click', function()
{
$(this).prev().find('li.active:last').after('<p>HTML</p>');
});
答案 2 :(得分:0)
试试这个:
var $controls = $('.controls');
$('.add').on('click', function() {
$controls.find('li.active:last').after('<li>HTML</li>');
});
另请注意,您可能需要.after
而不是.insertAfter
。另外,如评论中所述,您不应将p
作为ul
的孩子插入,因此我将其更改为li
。
答案 3 :(得分:0)
$(".controls li.active").last().after('<p>HTML</p>');