javascript - 如何保留一些对象并移除其他对象

标签 javascript jquery html

我正在尝试删除一些具有 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();

http://jsfiddle.net/WnDS2/

编辑: 正如您的 fiddle 所演示的那样,如果传递给 slice 方法的第一个参数是负数, slice 方法不会过滤元素,您可以检查的长度所选元素,如果减法结果为负数,则将其设置为 0。

http://jsfiddle.net/WnDS2/5/

关于javascript - 如何保留一些对象并移除其他对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16128948/

相关文章:

javascript - 在 heroku 上使用 node.js 自动添加页面?

ajax - 无法使用 jQuery 附加到附加元素

jquery - 当 'clicked ' Jquery 中的淡入淡出类

javascript - 如何使用箭头键在canvas html5上移动图像?

javascript - 更改 iframe 中 body 元素的背景颜色

javascript - 使用 Javascript 访问服务器变量

javascript - 对浮点相等性测试感到困惑?

javascript - SAPUI5 在 Controller 中动态创建 ComboBox

jQuery 获取选中复选框的标签

javascript - 此功能突出显示选定的文本,我如何删除 javascript 单击突出显示的文本所做的跨度?