按钮上的扰流板

时间:2014-03-26 11:55:38

标签: javascript button

我正试图在按钮上制作扰流板。 它仅适用于JSFIddle。 但它在HTML文档中不起作用:

JsFiddle

HTML:

<button  onclick="showSpoiler(this);" style="outline: none;" >Spoiler</button>

<span class="inner" style="display:none;">
   This is a spoiler!
</span>

JS

window.showSpoiler = function (obj)
{
    var inner = obj.parentNode.getElementsByTagName("span")[0];       
    if (inner.style.display == "none")
    {     
        obj.style.display = "none";   
        inner.style.display = "";
    }
    else
        inner.style.display = "none";
    }
}

1 个答案:

答案 0 :(得分:2)

<强>问题:
您的网站上没有任何<span>元素,而您的剧透onclick正在搜索该元素。使用inner.style.display,您尝试访问style inner的{​​{1}}属性(因为无法找到undefined),因此收到错误。

<强>解决方案:

更改
var inner = obj.parentNode.getElementsByTagName("span")[0];

var inner = obj.parentNode.getElementsByTagName("div")[0];

希望它有所帮助!