2016-08-15 7 views
0

が含まれている場合、私は大体このようになりますテーブルがあり、テーブル内の特定のレベルにあるすべてのtdのを選択します。それがネストされたテーブル

==================== 
| td | td*  | 
|  | |==========| 
|  | |td*| td& | 
|  | |td*|======| 
|  | |td*|td&|td| 
|  | | |======| 
|  | |==========| 
==================== 

私は階層内の位置によって要素を選択します。たとえば、*またはすべてのtdが&と表示されています。

tr td:nth-child()セレクタはネストされたテーブルが存在するため機能しません。そのためセレクタも同様に適用されます。

私はjQueryまたはjavascriptの手法で問題ありません。ここで

は、HTMLのレイアウトです:私は$('table tr td:nth-child(2)');を行う際

<table> 
    <tr> 
     <td> 
     Label1 
     </td> 
     <td name="level-2"> 
      <table> 
       <tr> 
        <td name="level-2">Label2 
        </td> 
        <td name="level-3"> 
         <table> 
          <tr> 
           <td name="level-3">Label3</td> 
           <td name="level4">Value3</td> 
          </tr> 
         </table> 
        </td> 
       </tr> 
      </table> 
     </td> 
    </tr> 
</table> 

それは内容ではなく、セカンドレベル-2 TDを含めた全体の親level-2 TDを選択します。

これらの名前は参考用です。

+1

あなたはこれまでのものを表示することができますか?それはあなたの問題を視覚化するのに役立つかもしれません。 – showdev

+1

あなたのASCIIイメージがクリアされていません。 HTML構造を投稿してください。 – Oriol

+0

HTMLレイアウトとjQueryを追加しました。 – zaitsman

答えて

0

私はそのテーブルのすべてのtdの要素を取得し、そのレベルを取る関数にそのtdのセレクタを渡すその後、テーブルの各tdレベルを得るために、いくつかの再帰的なJavaScript関数を実装するためにあなたを提案することができます。だから、反復ごとにあなたのtdレベルがあります。 よろしくお願いします。

0

これは、他のtdに同じ名前を使用しない限り、このトリックを行う必要があります。

[name = level-num]という名前で選択します(必要なtdの名前で変更します)。値やIDなどでも検索できます。

「.each」は、指定されたすべての要素(この場合、「level-num」という名前のすべてのtd)を選択するだけです。

$(td[name=level-num]).each(function(){ 
    $(this).something; //do something with every td that has the name "level-*Level Number*" 
}); 
+0

残念ながら、レンダリングされたhtmlには名前タグがないため、これはまったく機能しません。それゆえ、私は '名前は説明だけです。'質問に。 – zaitsman

+0

次に、それらをどのように識別していますか?それはクラスではありますか? – Proto

+0

したがって質問:私はドキュメントの最初のテーブルを見つけることができ、そこからDOMをたどる必要があります。 – zaitsman

関連する問題