Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript单击时显示元素_Javascript_Html_Json - Fatal编程技术网

Javascript单击时显示元素

Javascript单击时显示元素,javascript,html,json,Javascript,Html,Json,我试图在没有Jquery的情况下完成这项工作。我想在单击触发器时显示一个div。到目前为止,我有这个隐藏元素 document.getElementById('element').style.display = 'none'; HTML <div class="element">Ahem, boo!!</div> <a href="#" id="showDiv">Show</a> Ahem,boo!! 单击链接时,如何创建显示div的函数?

我试图在没有Jquery的情况下完成这项工作。我想在单击触发器时显示一个div。到目前为止,我有这个隐藏元素

 document.getElementById('element').style.display = 'none';
HTML

<div class="element">Ahem, boo!!</div>
<a href="#" id="showDiv">Show</a>
Ahem,boo!!

单击链接时,如何创建显示div的函数?我希望避免在链接本身中使用类似于
onclick=“showDiv()
的函数。

可以在JavaScript中完全附加事件处理程序。示例:

document.getElementById('showDiv').onclick = function() {
    // Do whatever now that the user has clicked the link.
};
要扭转您发布的第一行代码的效果,您可以使用:

document.getElementById('element').style.display = 'block'; // or
document.getElementById('element').style.display = '';

可以在JavaScript中完全附加事件处理程序。示例:

document.getElementById('showDiv').onclick = function() {
    // Do whatever now that the user has clicked the link.
};
要扭转您发布的第一行代码的效果,您可以使用:

document.getElementById('element').style.display = 'block'; // or
document.getElementById('element').style.display = '';

将以下内容添加到脚本:

function myFunction() {

            var btn = document.getElementById("myButton");
            //to make it fancier
            if (btn.value == "Click To Open") {
                btn.value = "Click To Close";
                btn.innerHTML = "Click To Close";
            }
            else {
                btn.value = "Click To Open";
                btn.innerHTML = "Click To Open";
            }
            //this is what you're looking for
            var x = document.getElementById("myDIV");
            if (x.style.display === "none") {
                x.style.display = "block";
            } else {
                x.style.display = "none";
            }
        }
并编辑按钮和div:

<button onclick="myFunction()" id="myButton" value="Click To Open Instructions">Click To Open Instructions</button>

 <div style="display:none;" id="myDIV">
</div>
单击打开说明

将以下内容添加到脚本中:

function myFunction() {

            var btn = document.getElementById("myButton");
            //to make it fancier
            if (btn.value == "Click To Open") {
                btn.value = "Click To Close";
                btn.innerHTML = "Click To Close";
            }
            else {
                btn.value = "Click To Open";
                btn.innerHTML = "Click To Open";
            }
            //this is what you're looking for
            var x = document.getElementById("myDIV");
            if (x.style.display === "none") {
                x.style.display = "block";
            } else {
                x.style.display = "none";
            }
        }
并编辑按钮和div:

<button onclick="myFunction()" id="myButton" value="Click To Open Instructions">Click To Open Instructions</button>

 <div style="display:none;" id="myDIV">
</div>
单击打开说明

onclick事件你为什么不想使用?你唯一的选择是,但那也不是更好的…如果链接是隐藏的,你怎么能点击它?@MikeRuhlin你的评论是非常不正确的。绝对有其他选择(事实上不止一个)将JavaScript与HTML标记混合使用。您应该避免HTML中的
onclick
属性,以及HTML中的所有其他JavaScript事件处理程序。@Cyberfankie如果您以编程方式生成HTML锚并将其注入DOM,这是可以接受的。如果您的HTML是从使用这种语义不正确的锚点连接到浏览器。然而,jQuery在这里是不相关的。许多人在HTML中不正确地使用jQuery、Prototype和其他JavaScript库,这一事实并不能使它正确。@CyberJunkie它在语法上不受支持。JavaScript支持它很好(就像将单击处理程序应用于其他元素一样)。对于手头的任务来说,这只是错误的HTML标记,就像使用
blockquote
直观地缩进非引号的内容是不正确的一样。您为什么要避免使用onclick事件?您唯一的其他选择是,但这也不好……如果链接被隐藏,您如何单击它?@mikerohlin您的评论非常不正确。T这里绝对有一个选择(事实上不止一个)将JavaScript与HTML标记混合使用。您应该避免HTML中的
onclick
属性,以及HTML中的所有其他JavaScript事件处理程序。@Cyberfankie如果您以编程方式生成HTML锚并将其注入DOM,这是可以接受的。如果您的HTML是从使用这种语义不正确的锚点连接到浏览器。然而,jQuery在这里是不相关的。许多人在HTML中不正确地使用jQuery、Prototype和其他JavaScript库,这一事实并不能使它正确。@CyberJunkie它在语法上不受支持。JavaScript支持它很好(就像将单击处理程序应用于其他元素一样)。这只是当前任务的错误HTML标记,就像使用
blockquote
直观地缩进非引号的内容是不正确的一样。