Javascript单击时显示元素
我试图在没有Jquery的情况下完成这项工作。我想在单击触发器时显示一个div。到目前为止,我有这个隐藏元素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的函数?
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
直观地缩进非引号的内容是不正确的一样。