[英]Adding a class to a list element
我試圖將一個活動的類添加到列表元素,並不能解決為什么這個方法不起作用任何指導將不勝感激。 請參閱下面的代碼。
這是HTML
<ul class="Menu">
<li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab1','tab1text')">Menu Item</a></li>
<li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab2','tab2text')">Menu item</a></li>
<li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab3','tab3text')">Menu Item</a></li>
<li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab4','tab4text')">Menu Item</a></li>
</ul>
和CSS一起上課
.tab {
color:;
background-color:;
font-family: 'Roboto', sans-serif;
}
.active {
color: #00ffff;
}
和Javascript功能
<script>
function showContent(obj, content, text)
obj.className += " active";
</script>
這是一個JSfiddle以及https://jsfiddle.net/wxjop98f/1/
我無法弄清楚為什么這不起作用,因為各種教程都說明了這種方法。 非常感謝您提供的任何幫助。
幾個問題:
<head>
(沒有換行) {...}
obj.classList.add
(盡管obj.className += ' active'
也可以。 .active
上的顏色處理<a>
元素,則應使用a.active
(否則anchor
的顏色定義將獲得更高的優先級)。 這是修復:
https://jsfiddle.net/54w6ntx7/
一個完整的片段:
function showContent(obj, content, text) { //debugger; obj.classList.add("active"); }
a:link{ color: inherit; text-decoration: inherit; } a:visited{ color: inherit; } a:active{ color: inherit; } .tab { color:; background-color:; font-family: 'Roboto', sans-serif; } a.active { color: green; }
<ul class="Menu"> <li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab1','tab1text')">Menu Item</a></li> <li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab2','tab2text')">Menu item</a></li> <li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab3','tab3text')">Menu Item</a></li> <li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab4','tab4text')">Menu Item</a></li> </ul>
您缺少函數的{}:
function showContent(obj, content, text){
obj.className += " active";
}
只需更改您的javascript如下,您只是錯過了大括號
<script>
function showContent(obj, content, text)
{
obj.className = "active";
}
</script>
function showContent(obj, content, text) { if (obj.className.indexOf("active") < 0) obj.className += " active"; }
.tab { color: ; background-color: ; font-family: 'Roboto', sans-serif; } .active { color: #00ffff; }
<ul class="Menu"> <li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab1','tab1text')">Menu Item</a> </li> <li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab2','tab2text')">Menu item</a> </li> <li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab3','tab3text')">Menu Item</a> </li> <li class="tab" style=""><a href="javascript:void(0)" onclick="showContent(this,'tab4','tab4text')">Menu Item</a> </li> </ul>
你已經在錨標簽<a>
放入了onclick函數,並且你將活動類放在<a>
所以請在<li>
標簽而不是<a>
上放置onclick函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.