javascript - 如何将 onclick 代码压缩为动态

标签 javascript html dynamic

我试图让这个 onclick 函数代码变得动态。我不想为所有状态提供 50 个代码块。他是代码的快速片段

    var Ohio=function(){
    document.getElementById('texas').style.display='none';
    document.getElementById('florida').style.display='none';
    document.getElementById('ohio').style.display='block';

    }

等等等等......

传递函数的html:

<li onclick="Ohio()" id="ohio" >

等等等等 我将如何压缩它以使其更小且动态?

最佳答案

如果您可以更新元素以具有公共(public)类,例如 class="state",则:

var SetState = function(state) {
    var s = document.getElementsByClassName("state"),
        i;
    for (i=0; i < s.length; i++)
        s[i].style.display = 'none';

    document.getElementById(state).style.display = 'block';
};

也就是说,使用 state 类循环遍历所有元素并隐藏它们,然后仅显示传递到函数中的元素:

SetState('ohio');

或者,如果您无法更改 html,请将所有州名称放入一个数组中,然后循环遍历该数组以隐藏它们。

关于javascript - 如何将 onclick 代码压缩为动态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12450922/

相关文章:

javascript - Bootstrap 3 Navbar 在调整大小时不显示以前隐藏的内容

javascript - 如何不让网站阻止您的 iframe?

Apache:子域、虚拟主机和动态 DNS

javascript - 用javascript替换多个html属性

javascript - Webkit 滞后于 Canvas 中的大图像

javascript - 将 JQuery Click 事件附加到 anchor ID

javascript - Jquery点击失败

javascript - HTML/CSS/JavaScript 培训视频

android - 可下载的 Android 应用程序主题

c# - 在 C# 中调用动态 PSObject 属性会返回 RuntimeBinderException