1

私は初心者のプログラマーで、次の問題に悩まされています: ネストされた順序付けられていないリストがある場合、特定のレベルまでの要素のみをコピーするにはどうすればよいですか? たとえば、この順序付けられていないリストを最初の 2 つのレベルに減らしたい場合:

<ul>
  <li>A</li>
  <ul>
    <li>C<br>
    </li>
    <li>D<br>
    </li>
    <ul>
      <li>E<br>
      </li>
      <li>F<br>
      </li>
      <ul>
        <li>G<br>
        </li>
        <li>H<br>
        </li>
      </ul>
    </ul>
    <li>E<br>
    </li>
  </ul>
  <li>B</li>
</ul> 

<ul>
  <li>A</li>
  <ul>
    <li>C<br>
    </li>
    <li>D<br>
    </li>
    <li>E<br>
    </li>
  </ul>
  <li>B</li>
</ul>

これを達成する簡単な方法はありますか?

4

3 に答える 3

1

これは のようなもの$('ul ul ul').remove()である必要がありますが、ローカル パージを実行できるように、たとえば id またはクラスの div で囲むことをお勧めします。$('div.twolvls ul ul ul').remove()

于 2012-04-06T16:40:48.360 に答える
1

シンプルバージョン:

$('ul ul ul').remove();

jsFiddle デモ

また、ルート要素とレベルを指定できる小さな関数も作成しました。

function reduce(root, selector, level) {
    var use = root;
    for (var i = 0; i <= level; i++) {
        use += ' ' + selector;
    }
    $(use).remove();
}

次のように呼び出して使用します。

//if the lists are in an element with the id 'root', see Demo
reduce('#root', 'ul', 2);

jsFiddle デモ

于 2012-04-06T16:41:07.530 に答える
0

第 3 レベルの順序なしリストを単純に削除する場合は、 を使用できます$(ul ul ul).remove()

于 2012-04-06T16:41:09.037 に答える