jquery仅在特定级别上选择

时间:2012-08-08 08:34:09

标签: jquery jquery-selectors

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

也许有可能像$('#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>

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

怎么样

$('#main>div>table>tr>td>div.x')

答案 1 :(得分: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进行测试