Javascript 通过 id 隐藏和显示元素不适用于多种情况

标签 javascript html getelementbyid var addeventlistener

我真的不知道任何 JavaScript,但我已经能够拼凑出一种方法,以编程方式隐藏网页上的 html 表,使用以下行的版本在页面打开时隐藏它们:

document.getElementById("approved").style.display = "none";

等等

然后根据从选择菜单中选择的值来显示该元素,使用:

document.getElementById('cboaim').addEventListener('change', function (){
var style = this.value == "10" ? 'block' : 'none';
document.getElementById('approved').style.display = style;
var style = this.value == "13" ? 'block' : 'none';
document.getElementById('enddate').style.display = style;
var style = this.value == "14" ? 'block' : 'none';
document.getElementById('tortm').style.display = style;
var style = this.value == "17" ? 'block' : 'none';
document.getElementById('enddate').style.display = style;
});

除了与“enddate”相关的两行之外,它几乎适用于所有内容。它适用于其中一个值,但不适用于另一个值。我假设引用元素 id 两次会破坏此代码(选择 13 和 17 都需要显示此日期框)。

由于更复杂的原因,我不能只添加另一个具有不同 id 的表,因此我希望有人知道解决该问题的简单方法。请对我温柔一点,我知道 javascript 可能会冒犯程序员;-)

如果更容易的话,我也很乐意使用附加到 select 上 onchange 的函数?我只使用 addeventlistener 因为在 stackoverflow 上搜索后找到了这个特定的解决方案。

干杯 莱斯

最佳答案

删除所有这些 var 语句。在同一作用域中多次声明相同的 var 是无效的 JS。

现在,对值 "17" 的检查将始终覆盖对 "13" 的检查,更改 'enddate' 上的条件元素:

document.getElementById('cboaim').addEventListener('change', function (){
    document.getElementById('approved').style.display = 
        this.value == "10" ? 'block' : 'none';

    document.getElementById('tortm').style.display = 
        this.value == "14" ? 'block' : 'none';

    document.getElementById('enddate').style.display = 
        (this.value == "13" || this.value == "17") ? 'block' : 'none';
});

如果值为“13”,这将设置'enddate'显示如果值为“17” .

关于Javascript 通过 id 隐藏和显示元素不适用于多种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31477230/

相关文章:

Javascript 搜索标签并获取它的 innerHTML

javascript getElementById 在 chrome 中给出错误,但在 IE 中工作正常

javascript - 通过 JavaScript 引用 HTML 元素的正确方法是什么?

javascript - getElementById 未获取文本区域内容

javascript - 在页面中添加一些 JavaScript 后,我​​的网站上出现奇怪的无限滚动

javascript - 数组映射不返回值 react

PHP 从用户输入中删除 html 和 php 代码

html - 在站点根文件夹中的文件夹中定义 HTML 的根目录

javascript - 使用 Javascript 确定 JSF 库资源

html - 指定百分比的垂直滚动条