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'元素,所以你第二次執行它(對於第二個'.source'),它與你剛剛添加的'ul'匹配(當執行第一個'.source'時)。如果是'#target'的**直接**孩子,添加'>'使得選擇器僅查找'ul'。更多:http://www.w3.org/TR/css3-selectors/ –
@BhojendraNepal我開始編程時也遇到了這個問題。有趣的是,我發現了StackOverflow,有個類似這樣的問題 –