1

特定のレベルでjqueryを使用して要素を選択しようとしています。それらは、クラスの直接サブで#main->tableあり、クラスを含む必要がありますx。私はそのようなことを試みていますが$('#main>table .column');、これでクラス「x」(合計3)の2番目のレベルのdivも取得します。例で「wanted」とマークされている2つの要素だけが必要です。残念ながら、コードに変更を加えることはできません...

多分何かのような可能性があり$('#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);

jQuery1.7.2を使用してテスト

于 2012-08-08T08:54:42.963 に答える