[英]How to find the closest li that has the class 'active'
我正在尝试生成一些jQuery,它将找到具有class属性的最接近列表项,并在其后直接插入一些html?
我有以下内容,但这需要工作..它是通过on click event()调用的
$('.controls').on('click.add', function()
{
$(this).parent().closest('li.active').insertAfter('<p>HTML</p>');
});
任何人都可以提供帮助-在这种情况下,我想选择第三个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>
“最简单的解决方案是使用pop,它访问数组中的最后一个元素。
var lastClass = $('div').attr('class').split(' ').pop();
请注意,pop还会从数组中删除该元素,但是由于您没有对它做任何其他事情,所以这不是问题。”
尝试这样做:
$('.add').on('click', function()
{
$(this).prev().find('li.active:last').after('<p>HTML</p>');
});
尝试这个:
var $controls = $('.controls');
$('.add').on('click', function() {
$controls.find('li.active:last').after('<li>HTML</li>');
});
还要注意,你可能希望.after
而非.insertAfter
。 另外,如注释中所指出的,您不应将p
作为ul
的子代插入,因此我将其更改为li
。
$(".controls li.active").last().after('<p>HTML</p>');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.