javascript - 将类名传递给函数参数

标签 javascript html

我正在处理这部分代码:

<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";
}

我当前的目标是将类“red”传递到函数中并更改span元素的显示。当我使用 ID 时,它工作正常,但当我想传递类时,结果为 null。是否可以在 JS 函数中动态传递类名?

最佳答案

getElementsByClassName 返回一个集合,因此您需要遍历每个元素来分配样式。您还可以使用querySelector("."+ className),它仅返回第一个匹配的元素。

关于javascript - 将类名传递给函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60906260/

相关文章:

javascript - 重用 FileReader 时宽度和高度错误

javascript - onMouseOver 并按下鼠标左键(事件)

javascript - Leaflet ReactJS Map 未完全显示图 block

javascript - 为什么 if 语句不会返回 boolean 和 object 类型的值?

html - 你能在 HTML 中的 <body> 标签之前放置一个 <center> 标签吗?

javascript - clearInterval 问题(jquery、javascript)

html - 强制 HTML 表格不超过其容器的大小

html - 页面背景未完全着色

Jquery - 单击父 div 时访问子值

javascript - 为什么我用js创建的元素和我直接在html文件中添加的元素样式不一样