我有以下HTML
<div class="btn-group">
<button class="btn dropdown-toggle action" data-toggle="dropdown">Nav name <span class="caret"></span></button>
<ul id="nav" class="dropdown-menu test">
<li><a href="#" id="action-1">one</a></li>
<li><a href="#" id="action-2">two</a></li>
<li><a href="#" id="action-3">three</a></li>
</ul>
</div>单击<li>时,我需要列表标记的HTML替换“name”。
这是我使用的jQuery和一个小提琴手
jQuery("#action-1").click(function(e){
jQuery('.action').html('one <span class="caret"></span>');
e.preventDefault();
});
jQuery("#action-2").click(function(e){
jQuery('.action').html('two <span class="caret"></span>');
e.preventDefault();
});
jQuery("#action-3").click(function(e){
jQuery('.action').html('three <span class="caret"></span>');
e.preventDefault();
});这不是干净的代码,我知道,它可以写得更好。如何使用$this和jQuery来获取li标记的HTML,并替换.action类html,即“name"?由于下拉列表将动态生成,所以我需要使用一个方法来单击li的HTML,但不确定如何编写它。
谢谢
发布于 2013-08-27 19:37:34
$("#nav > li > a").click(function(e) {
e.preventDefault();
$(".action").html($(this).text() + '<span class="caret"></span>');
});发布于 2013-08-27 19:42:05
$('#nav li').on('click', function (e) {
e.preventDefault();
$('.action').html($(this).text() + '<span class="caret"></span>');
});JSFiddle。
https://stackoverflow.com/questions/18473943
复制相似问题