简体   繁体   English

将类名传递给函数参数

[英]Passing class name into function parameter

Im working with this part of code:我正在处理这部分代码:

<div class="tabs-buttons-container">
            <button class="tabs-button" onclick="openTabs(event, 'test11', 'red')">Tab 1</button>
            <button class="tabs-button" onclick="openTabs(event, 'test12')">Tab 2</button>
            <button class="tabs-button" onclick="openTabs(event, 'test13')">Tab 3</button>
            <span class="test"></span>
            <span class="red"></span>
            <span class="white"></span>
        </div>
const openTabs = (event, tab, test) => {
    let i, tabContent, tabButton;

    tabContent = document.getElementsByClassName("tabs-content")

    for (i = 0; i < tabContent.length; i++) {
        tabContent[i].style.display = "none";
    }

    document.getElementById(tab).style.display = "block";
    document.getElementsByClassName(test).style.display = "block";
}

My current goal is to pass class "red" into function and change the display of span element.我目前的目标是将类“红色”传递给函数并更改 span 元素的显示。 When im using ID it works fine but when i want to pass class the result is null.当我使用 ID 时它工作正常但是当我想传递类时结果为空。 Is this possible to dynamically pass class name inside JS function?这是否可以在 JS 函数中动态传递类名?

getElementsByClassName return a collection, so you need to go through each element to assign the style. getElementsByClassName返回一个集合,因此您需要遍历每个元素来分配样式。 You can also use querySelector("." + className) which return only the first matched element.您还可以使用querySelector("." + className)只返回第一个匹配的元素。

var red = document.getElementByClassName('red')[0];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM