我正在尝试删除一些具有 num
类的对象。
html:
<a class='num'>1</a>
<a class='num'>2</a>
<a class='num'>3</a>
<a class='num numa'>4</a>
<a class='num'>5</a>
<a class='num'>6</a>
<a class='num'>7</a>
<a class='num'>8</a>
<a class='num'>9</a>
<a class='num'>10</a>
但我也想在 numa
周围保留对象。
我想在 numa
加上 numa
之前和之后保留三个对象。
这是我的尝试:
<script>
var ind = $('.num:contains("4")').index();
for(i=0; i<$('.num').size(); i++)
{
if(i<ind-3 || i>ind+3) $('.page_num:eq('+ind+')').remove();
}
</script>
有什么想法吗?
最佳答案
您可以使用slice
方法并使用not
方法排除元素。由于使用了 index
方法,如果元素不是页面中的同级元素,这也会选择和删除元素。
var $e = $('a.num'),
$t = $e.filter('.numa'),
i = $e.index($t),
$k = $e.slice(i-3, i+4);
$e.not($k).remove();
编辑:
正如您的 fiddle 所演示的那样,如果传递给 slice
方法的第一个参数是负数, slice
方法不会过滤元素,您可以检查的长度所选元素,如果减法结果为负数,则将其设置为 0。
关于javascript - 如何保留一些对象并移除其他对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16128948/