【发布时间】:2020-11-08 20:12:45
【问题描述】:
我正在尝试构建一个菜单,突出显示用户所在的当前选项卡/页面,添加一个颜色类,并使用 JavaScript 更新活动链接。这是我的模板:
<div class="w3-bar w3-black">
<button
class="w3-bar-item w3-button tablink w3-red"
onclick="openCity(event,'London')"
>
London
</button>
<button
class="w3-bar-item w3-button tablink"
onclick="openCity(event,'Paris')"
>
Paris
</button>
<button
class="w3-bar-item w3-button tablink"
onclick="openCity(event,'Tokyo')"
>
Tokyo
</button>
</div>
<div id="London" class="w3-container w3-border city">
<h2>London</h2>
<p>London is the capital city of England.</p>
</div>
<div id="Paris" class="w3-container w3-border city" style="display:none">
<h2>Paris</h2>
<p>Paris is the capital of France.</p>
</div>
<div id="Tokyo" class="w3-container w3-border city" style="display:none">
<h2>Tokyo</h2>
<p>Tokyo is the capital of Japan.</p>
</div>
我在“方法”中有这个 javascript 代码:
methods: {
openCity: function(evt, cityName) {
var i, x, tablinks;
x = document.getElementsByClassName("city");
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablink");
for (i = 0; i < x.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" w3-red", "");
}
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " w3-red";
}
}
但我在控制台中收到此错误:'TypeError: Cannot read property 'className' of undefined' 并且它没有突出显示它的按钮。 希望您能帮帮我,谢谢!
【问题讨论】:
-
什么类名未定义? tablinks[i].classNam 还是 evt.currentTarget.className?
标签: javascript css vue.js