javascript - 使用没有 jquery 的单选控件控制 javascript 隐藏/显示 div

标签 javascript html

下面的代码似乎不起作用

//javascript

function t_show() {
    if(document.getElementById("t_show").checked == true){
        if(document.getElementById("t_show").value == 1) {
            showDiv("t_settings");
        }
    } else {
        hideDiv("t_settings");
    }
}

function show(show){
    var s = document.getElementById(show);
    if(!s) return true;
    s.style.display="";
    return true;
}

function hide(hide){
    var h = document.getElementById(hide);
    if(!h) return true;
    h.style.display="none";
    return true;
}

//html

Text show:
<input type="radio" name="t_show" value="1"  checked="checked" onchange="t_show(); update_preview();" id="t_show">Yes 
<input type="radio" name="t_show" value="0"                    onchange="t_show(); update_preview();" id="t_show">No 

<div id="t_settings">This content is to be shown if the show text is enabled.</div>

最佳答案

  1. <div/>有一类 t_settings但你调用getElementById()
  2. 您正在调用 showDiv()但函数名称实际上是 show()
  3. 您正在调用 hideDiv()但函数名称实际上是 hide()
  4. 而不是做 s.style.display = "";使用 s.style.display = "block";
  5. document.getElementById("t_show").value == 1将永远为真,您可以将其简化为使用 document.getElementById("t_show").checked
  6. id每个 dom 都必须是唯一的。应该只有一个 t_show每页。

将所有这些放在一起你最终会得到这个:

function showDiv(show) {
    var s = document.getElementById(show);
    if (!s) {
        return true;
    }
    s.style.display = "block";
    return true;
}

function hideDiv(hide) {
    var h = document.getElementById(hide);
    if (!h) {
        return true;
    }
    h.style.display = "none";
    return true;
}
function t_show() {
    if (document.getElementById("t_show").checked) {
        showDiv("t_settings");
    }
    else {
        hideDiv("t_settings");
    }
}

jsfiddle 上的代码示例.

关于javascript - 使用没有 jquery 的单选控件控制 javascript 隐藏/显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5517918/

相关文章:

javascript - 从字符串动态创建 Javascript 对象并将对象作为函数的参数

javascript - jQuery:偏移量和位置返回相同的值

html - 使用 iFrame 将 Youtube channel 嵌入到 HTML 中

html - 边框父 div 和子 div 之间的空间

javascript - 使用 Jquery 切换 Div 的宽度

javascript - 使用自定义 View 对列范围 Highcharts 中的类别进行分组

javascript - 变量不会设置

javascript - vue 默认重定向导致最大堆栈错误

html - rotate(90deg) 打印不友好

javascript - 根据与页面顶部的距离更改粘性标题文本