将Class添加到UL元素的ALL Child
Add Class to ALL Child of UL element
好吧,我想把类添加到我ul的所有li中,但我不知道为什么它不起作用。
我的CSS代码:
.vnav-menu li.selected {
background:#fff;
}
这是我的html代码。
<ul class="vnav-menu"> <!-- Initiates Showing/Hiding Dashboard Containers -->
<li onclick="vnav_function('current_offer');" id="current_offer_li" class="selected"> <a> CURRENT OFFERS </a></li>
<li onclick="vnav_function('draft_offer');" id="draft_offer_li"> <a> DRAFT OFFERS </a></li>
<li onclick="vnav_function('expired_offer');" id="expired_offer_li"> <a> EXPIRED OFFERS </a></li>
<li onclick="vnav_function('offer_code');" id="offer_code_li"> <a> OFFER CODE </a></li>
<li onclick="vnav_function('title');" id="title_li"> <a> TITLE </a></li>
<li onclick="vnav_function('schedule');" id="schedule_li"> <a> SCHEDULE </a></li>
<li onclick="vnav_function('offer_type');" id="offer_type_li"> <a> OFFER TYPE </a></li>
</ul>
这是我为函数vnav_function()编写的代码
function vnav_function(data) { //Showing/Hiding Dashboard Containers
$('.vnav-menu li').each(function(i)
{
$(this).attr('id').addClass("selected");
});
}
好吧,出于某种原因,它不会起作用。有什么想法吗?
.attr('id')
返回一个字符串。我认为你想使用ID进行比较:
if ($(this).attr('id') == $(data.target).attr('id') {
$(this).addClass('selected');
}
然而,只做会容易得多
function vnav_function(data) {
$(this).addClass('selected');
}
并且进行会更容易
<ul class="vnav-menu"> <!-- Initiates Showing/Hiding Dashboard Containers -->
<li id="current_offer_li" class="selected"> <a> CURRENT OFFERS </a></li>
<li id="draft_offer_li"> <a> DRAFT OFFERS </a></li>
<li id="expired_offer_li"> <a> EXPIRED OFFERS </a></li>
<li id="offer_code_li"> <a> OFFER CODE </a></li>
<li id="title_li"> <a> TITLE </a></li>
<li id="schedule_li"> <a> SCHEDULE </a></li>
<li id="offer_type_li"> <a> OFFER TYPE </a></li>
</ul>
$(".vnav-menu li").on('click', function () {
$(this).addClass('selected');
});
你甚至可能想做:
$(".vnav-menu li").on('click', function () {
$(".vnav-menu").removeClass('selected');
$(this).addClass('selected');
});
您正试图对$(this).attr('id')
返回的字符串调用addClass
方法。尝试对$(this)
:返回的jQuery集合使用addClass方法
$(this).addClass("selected");
无jQuery:
function getElementsByCSSSelector(s) {
return Array.prototype.slice.call(document.querySelectorAll(s));
}
getElementsByCSSSelector('.vnav-menu li').forEach(function(li) {
li.classList.add("selected");
});
function vnav_function(data) { //Showing/Hiding Dashboard Containers
$('.vnav-menu li').each(function()
{
$(this).addClass("selected");
});
}
或者只是:
function vnav_function(data) { //Showing/Hiding Dashboard Containers
$('.vnav-menu li').addClass('extra');
}
无需使用.each
代替$('.vnav-menu li').addClass('extra');
,这可以将class
添加到ul.vnav-menu
内的每个li
相关文章:
- Nested Q.all nodejs
- Bootstrap Dropdown selection是在*all*下拉菜单上设置选择
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 当一些承诺失败时,如何继续使用$q.all()
- 是否可以使用“;document.all”;在IE11中,而不改变每次使用
- 如何在异步函数中正确使用Promise.all()和then()
- promise.all在一个forEach循环中——所有东西都同时启动
- Modx数据包管理器ext-all.js错误
- datatables+lengthMenu+All+服务器端处理+不工作
- Function.prototype.call和Function.protoype.all只应用一个参数
- jQuery last child和insetBefore不起作用
- 使用JQuery从包含A href值中设置*all*IMG-src值
- 当我追加到数组时,Ractive.js会追加或重新生成all吗
- $q.all当输入数组中的一项不是promise时,Typescript检查器失败
- Protractor-分配给element.all.locator.count的变量返回NaN why
- 当数组中的某个函数没有返回promise时,我可以使用$q.all吗
- JavaScript Get the child id
- .bind('all', 'update')上的主干怪异类型错误错误
- 为什么我不能通过 document.getElementById(“node's_id”).child 选择节点子节点
- 将Class添加到UL元素的ALL Child