1

我试图在特定级别上选择带有 jquery 的元素。它们必须直接#main->table属于该类并包含该类x。我正在尝试类似的东西$('#main>table .column');但是有了这个我也得到了第二级 div 类“x”(总共 3 个)。我只需要在示例中用“wanted”标记的两个元素。不幸的是,我无法对代码进行任何更改...

也许有什么可能的$('#main>table .column:first-child');?不知何故,这也给了我 3 个元素。最好只考虑特定数量的级别

<div id=main>
  <div class=x> <!-- not wanted -->
    <table>
      <tr>
        <td>
          <div class=x> <!-- wanted -->
          <table>
                    <tr>
                      <td>
                        <div class=x></div> <!-- not wanted -->
                      </td>
                    </tr>
                  </table> 
          </div>
        </td>
        <td>
          <div class=x></div> <!-- wanted -->                
        </td>
      </tr>
    </table>
   </div>
</div>

在此先感谢您的帮助!

4

2 回答 2

1

怎么样

$('#main>div>table>tr>td>div.x')
于 2012-08-08T08:39:45.100 回答
0

如果类“x”表示级别的标记,您可以根据父级长度过滤结果。

$('.x').filter(function(i,e) {
   return $(e).parents('.x').length === 1; 
})

这样您就可以轻松地重用代码:

$.fn.filterAt = function(level, selector) {
  var ps = selector || this.selector;
  return this.filter(function(i,e) {
     return $(e).parents(ps).length === level; 
  });
};

$('.x').filterAt(1);

使用 jQuery 1.7.2 测试

于 2012-08-08T08:54:42.963 回答