隐藏的div不会在click-Javascript上显示,没有Jquery

隐藏的div不会在click-Javascript上显示,没有Jquery,javascript,html,button,hide,Javascript,Html,Button,Hide,就像我描述的那样 第二步: “是的 “测试编号” 上面的div对按钮点击没有响应,似乎没有调用相应的JS函数 我知道这可能是一个小的语法错误,但我一辈子都找不到 谢谢你的帮助。我无法让它在小提琴中工作,它说nextStep功能不可用。 但下一步的定义应该适用: function nextStep(divShow, divHide, divReveal) { var show = document.getElementById(divShow); var hide = doc

就像我描述的那样


第二步:

“是的

“测试编号”

上面的div对按钮点击没有响应,似乎没有调用相应的JS函数

我知道这可能是一个小的语法错误,但我一辈子都找不到


谢谢你的帮助。

我无法让它在小提琴中工作,它说nextStep功能不可用。 但下一步的定义应该适用:

function nextStep(divShow, divHide, divReveal) {
    var show = document.getElementById(divShow);
    var hide = document.getElementById(divHide);
    var reveal = document.getElementById(divReveal);
    show.style.display = "inline-block";
    hide.style.display = "none";
    if (reveal.style.display == "none") 
        reveal.style.display = "block";
}
并将按钮更改为:

<button type="button" onclick="javascript:nextStep('resultOne', 'resultTwo', 'step2')">Yes</button>
<button type="button" onclick="javascript:nextStep('resultTwo', 'resultOne', 'step2')">No</button>
是
不

请注意,getElementById调用中的参数中是否包含了“参数”?您试图获取的是名为divShow的元素,而不是变量内容引用的元素。

该函数似乎没有被调用,因为JSFIDLE将javascript包装在一个匿名函数中,该函数在窗口加载时执行。这意味着您声明的函数的范围仅在该函数内

相反,请尝试将其作为全局函数附加

window.nextStep = function (divShow, divHide, divReveal) {
    var show = document.getElementById(divShow);
    var hide = document.getElementById(divHide);
    var reveal = document.getElementById(divReveal);
    show.style.display = "inline-block";
    hide.style.display = "none";
    if (reveal.style.display == "none") 
        reveal.style.display = "block";
}

在哪里分配单击处理程序?没有ID为
divShow
divHide
的元素?你也没有使用传递的参数?你可能把事情搞混了吗?我明白了,你把
divShow
divHide
divReveal
放在哪里了。你说的很有道理,但对我来说似乎仍然不起作用。我觉得这不是使用按钮使div可见/不可见的正确方法。您的方法确实不能很好地扩展。但是,我对DOM的使用还不够精通,无法为您提供更好的解决方案。但我们可以试着让你拥有的一个工作-作为一个开始。如果您查看javascript调试控制台,它会给出什么错误?很抱歉,我不知道如何使用调试控制台。你是指我的web浏览器(FF)中的那个还是JSFIDLE中的那个?FF中的。我无法帮助您使用FF调试控制台-在Chrome中,我只需按F12键,然后就可以了(在打开控制台选项卡之后)。我打开了它,但它对我在JSFIDLE中所做的任何操作都没有响应
window.nextStep = function (divShow, divHide, divReveal) {
    var show = document.getElementById(divShow);
    var hide = document.getElementById(divHide);
    var reveal = document.getElementById(divReveal);
    show.style.display = "inline-block";
    hide.style.display = "none";
    if (reveal.style.display == "none") 
        reveal.style.display = "block";
}