单击时将类添加到 li 标记
Add class to li tag on click
单击类时如何向<li>
元素添加类?
我有以下代码:
<ul id="moodtabs" class="side bar tabs">
<li id="tabs1" onclick="showStuff(this)" class="mbutton">Cheerful</li>
<li id="tabs2" onclick="showStuff(this)" class="mbutton">Romantic</li>
</ul>
<div id="tabs-1" class="tabContent" style="display: block;">
<h4>Content 1</h4>
</div>
<div id="tabs-2" class="tabContent" style="display: block;">
<h4>Content 2</h4>
</div>
当用户单击第一个<li>
时,将显示内容 1,第二个<li>
的第 2 个内容也会发生同样的情况。
这是我的JS:
function showStuff(element) {
var tabContents = document.getElementsByClassName('tabContent');
for (var i = 0; i < tabContents.length; i++) {
tabContents[i].style.display = 'none';
}
var tabContentIdToShow = element.id.replace(/('d)/g, '-$1');
document.getElementById(tabContentIdToShow).style.display = 'block';
}
$('ul#moodtabs li').click(function() {
$('ul li.current').removeClass('current');
$(this).closest('li').addClass('current');
});
我正在尝试将类active
添加到<li>
标签中,以便我可以在它们处于活动状态时设置它们的样式。
你的代码已经工作了(虽然可以写得更好)
但很可能你错误地将你的jQuery代码包装在DOM中:
jQuery(function( $ ){ // DOM ready
$('.tabs').each(function() {
var $tab = $(this).find(".tab");
$tab.on("click", function() {
var tabId = this.id.replace(/'D/g,'');
$tab.not(this).removeClass('current');
$(this).addClass('current');
$(".tabContent").removeClass("current");
$("#tabs-"+tabId).addClass("current");
});
});
});
.mbutton {background:none;}
.mbutton.current{background:red;}
.tabContent {display:none;}
.tabContent.current{display:block;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<ul id="moodtabs" class="side bar tabs">
<li id="tabs1" class="tab mbutton">Cheerful</li>
<li id="tabs2" class="tab mbutton">Romantic</li>
</ul>
<div id="tabs-1" class="tabContent">
<h4>Content 1</h4>
</div>
<div id="tabs-2" class="tabContent">
<h4>Content 222222</h4>
</div>
我认为最简单的绑定是
$('ul#moodtabs li').click(function() {
$(this).addClass('current').siblings('li').removeClass('current');
});
你也可以完全删除你的javascript函数,让它成为你的完整函数
。$('ul#moodtabs li').click(function() {
var myTab = $(this).index();
$(this).addClass('current').siblings('li').removeClass('current');
$('.tabContent').eq(myTab).css('display','block').siblings('.tabContent').css('display','none');
});
相关文章:
- 更改li标记文本的Javascript
- 使用jquery显示特定的li标记
- 如何使用json对象作为li元素的id属性或使用javascript锚定标记id
- 获取封闭li标记的id
- 在 li 中获取子标记的 html 内容
- 使用 jQuery 替换 li 标记中的文本
- 哪种模式在 gsub 中使用!将有序列表 (li 标记) HTML 字符串替换为订单号
- 获取位于 li 标记内的锚点值
- jQuery:如何找到具有特定id的li标记
- 如何从列表对象生成li和锚点标记
- 如果id不在JSON中,如何使用jQuery隐藏li标记
- Jquery删除最近的li标记在单击时不起作用
- 当离开每个li标记,但在ul标记中定义了鼠标out时,运行一个函数
- 自动递增javascript函数生成的li标记
- 为li标记重复onmouseover / onmouseout调用
- 如何通过在ul中的索引将类设置为li标记
- 每个td-li标记上的Onmouseover选项菜单
- 用于li标记子节点onclick的Javascript代码
- 使用javascript限制li标记
- 单击时将类添加到 li 标记