此代码将从下拉列表中用选定图标替换<button></button>
内显示的内容。 这工作良好,唯一的问题是,点击选定的元素后,该元素内的图标将出于某种原因消失?为什么会发生?我想<li>
将保持不变 http://codepen.io/filaret/pen/PGJEAL在下拉元素上单击其图标消失
HTML:
<div class="input-group-btn">
<button type="button" class="btn" data-toggle="dropdown">
<i class="fa fa-book"></i>
</button>
<ul class="dropdown-menu">
<li><i class="fa fa-book"></i> Something 111</li>
<li><i class="fa fa-newspaper-o"></i> Something 2222</li>
</ul>
</div>
的jQuery:
var $selectWrapper = $('.input-group-btn');
$selectWrapper.find(".dropdown-menu li").click(function() {
// Get <i class="fa"></i>
var $selectedIcon = $(this).find('.fa');
// Put it inside <button></button>
$selectWrapper.find(".btn").html($selectedIcon);
});
你能解释清楚是什么原因导致这个问题?我明白clone()会对元素进行深层次的复制,但不确定问题出现的原因是什么 – splay
谢谢,这有效......但为什么克隆甚至是必要的?查找元素不会将其删除:/ –
查找元素不会将其删除。但是当你使用'append()'或'html()'时,它会从原来的位置移动。 @IvanTopić – Azim