javascript - jQuery 选择直接 "parents",不相似

标签 javascript jquery html-table

我有一个像这样的表的固定结构:

<table>
    <tr><td class="lvl-0">1</td><tr>
    <tr><td class="lvl-1">2</td><tr>
    <tr><td class="lvl-2">3</td><tr>
    <tr><td class="lvl-2">4</td><tr>
    <tr><td class="lvl-2">5</td><tr>
    <tr><td class="lvl-1">6</td><tr>
    <tr><td class="lvl-2">7</td><tr>
    <tr><td class="lvl-2 selected">8</td><tr>
    <tr><td class="lvl-2">9</td><tr>
</table>

我想选择每个 lvl parent 。 这意味着我想从所选中选择之前的每个 lvl。除了相似。这意味着在这个例子中它将是 6 和 1

我试过这个:

var ss = [];
for(var l = lvl; l <= 5; l++){
    ss.push('td.lvl-'+l);
}
var ul = jQuery('table').find(ss.join(',')).closest('tr');
var pa = jQuery('.selected').closest('tr').prevAll('tr').not(ul);

但它也选择了数字 2

//编辑

我有一个 jsfiddle http://jsfiddle.net/g7yhwojg/3/选择应该是:

  • 14
  • 13
  • 10
  • 1

最佳答案

我自己弄的。

var lvls = [];
pa = pa.filter(function(){
    var pc = jQuery(this).find('td').attr('class');
    if(lvls.indexOf(pc) == -1){
        console.log(pc);
        lvls.push(pc);
        return true;
    }
    return false;
});

http://jsfiddle.net/g7yhwojg/11/

我遍历了所有上层元素,每次只取第一个。

关于javascript - jQuery 选择直接 "parents",不相似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32244358/

相关文章:

jquery - 结合 LazyLoad 和 Jquery Masonry

jquery - 将 Flexslider 导航按钮移至外部

javascript - CSS - 如何水平居中表格谁的位置是绝对的

css - 在表中使用 "word-wrap: break-word"

javascript - 类型错误 : Cannot read property 'current' of undefined focus

Javascript 数组访问在 IE 7 中不起作用

javascript - 执行元素的功能完全在视口(viewport)中(实时)

javascript - 懒网 : Need javascript that removes li elements based on visited class of a element

javascript - 下划线中使用 _(obj).map(callback) 和 _.map(obj, callback) 的区别

javascript - 抓取 HTML(或 JavaScript)表