我正在制作一个简单的节目和隐藏功能,它一直告诉我它没有被定义。
这是HTML:
<address>
<a id="windows" href="#" onclick="toggle();">
<img src="imges/c980e3f5-badf-432a-ae6c-9e5341d13462.png" alt="" />
</a>
</address>
<p class="right_page">
this is sample of the book container<br/>
thats suppose to read from ajax
</p>
这里是函数
<script type="text/javasript">
function toggle()
{
var ele = document.getElementById("right_page");
var text = document.getElementById("windows");
if(ele.style.display == "block") {
ele.style.display = "none";
text.innerHTML = "show";
}
else {
ele.style.display = "block";
text.innerHTML = "hide";
}
}
</script>
答案 0 :(得分:2)
我认为这是由于script
标记中的拼写错误造成的。将type="text/javasript"
更改为type="text/javascript"
(错过c
)。
由于您将innerHtml设置为字符串,因此正在从DOM中删除您的图像。这会覆盖作为innerHtml一部分的图像。
第一次运行toggle()
时,display
没有内联样式,因此ele.style.display
将为空字符串。这意味着它将落入显示段落的逻辑中。在后续调用中,属性将具有一个值,因此它应该按预期运行。
答案 1 :(得分:1)
这里有一些问题:
您是否直接从代码中粘贴了这个?如果是这样,您的<script type...
行包含拼写错误(应该是“javas * c * ript”)
您不能将getElementById()
用于right_page
,因为right_page
仅在您的标记中定义为类。
答案 2 :(得分:0)
首先,您错过了C 更改type="text/javascript"
,其次是right_pae
不是ID
,
不能使用document.getElementById
,因为你的函数有问题,所以它告诉你函数是未定义的