1
次のコードは、罰金追加ULは、再帰的に挿入
$('.source').each(function(i){ // .source is ul's class
$('#target ul').append('<li><a>link</a><div>div</div></li>');
});
の検索結果を動作します:
#target ul
<li>
<a>link</a>
<div>div</div>
</li>
しかし、再帰的に各ループ内のULを追加すると挿入します。
$('.source').each(function(i){
$('#target ul').append('<li><a>link</a><ul><li>list</li></ul></li>');
});
結果:
#target ul
<li>
<a>link</a>
<ul>
<li>list</li>
<li>
<a>link</a>
<ul>....</ul>
</li>
</li>
しかし、それはこのようになるはずである:
#target ul
<li>
<a>link</a>
<ul>
<li>list</li>
</li>
コードの問題は何ですか?
$('.source').each(function(){
$('#target ul').append('<li><a>link</a><ul><li>list</li></ul></li>');
});
.source {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="target">
<ul>
<li>foo</li>
</ul>
</div>
<ul class="source">
<li>list</li>
</ul>
<ul class="source">
<li>list</li>
</ul>
<ul class="source">
<li>list</li>
</ul>
@BhojendraNepal: '$( "#ターゲットUL")'マッチ '#のtarget'内**すべて**' ul'要素。 'ul'要素を追加しているので(2回目の' .source'のために)2回目に追加すると、( '.source'を実行したときに)追加した' ul'にマッチします。 '>'を追加すると、セレクタは '#target'の** direct **子である場合にのみ' ul'を探します。 More:http://www.w3.org/TR/css3-selectors/ –
@BhojendraNepal私もプログラミングを始めたときにこの問題に遭遇しました。 Funnilyそれは私がStackOverflowを見つけた方法ですが、これに似た質問がありました –