问题描述
- 嵌套的javascript 用children[0]为什么javascript代码没有执行呢
-
<head> <title>后台左侧导航页面</title> <style type="text/css"> .dc { display: none; margin-left: 10px; } </style> <script language="javascript"> function test(e) { e.style.display = e.style.display == 'block' ? 'none' : 'block' ; } </script> </head> <body> <ul> <li> <a href="#" onclick="test(cnm)">分类管理 <div id=cnm class="dc"> <a href="${pageContext.request.contextPath }/manager/addcategory.jsp" target="right">添加分类</a><br/> <a href="${pageContext.request.contextPath }/manager/ListCategoryServlet" target="right">查看分类</a><br/> </div> </a> </li> <a href="#" onclick="___test(children[0])___">分类管理 <div class="dc"> <a href="${pageContext.request.contextPath }/manager/addcategory.jsp" target="right">添加分类</a><br/> <a href="${pageContext.request.contextPath }/manager/ListCategoryServlet" target="right">查看分类</a><br/> </div>
解决方案
http://www.dewen.net.cn/q/10500
解决方案二:
标签乱嵌套,div不是a的合法元素,div被解析出a标签外了,用nextSibling属性,注意a和div之间不要有空白,要不标准浏览器下也算一个节点
而且不用直接使用id引用控件,用document.getElementById,有些浏览器不支持,而且定义过同名变量也会导致引用到变量而不是dom对象
<ul>
<li>
<a href="#" onclick="test(document.getElementById('cnm'))"> 分类管理</a><div id=cnm class="dc">
<a href="${pageContext.request.contextPath }/manager/addcategory.jsp" target="right">添加分类</a><br />
<a href="${pageContext.request.contextPath }/manager/ListCategoryServlet" target="right">查看分类</a><br />
</div>
</li>
<a href="#" onclick="test(this.nextSibling)"> 分类管理</a><div class="dc">
<a href="${pageContext.request.contextPath }/manager/addcategory.jsp" target="right">添加分类</a><br />
<a href="${pageContext.request.contextPath }/manager/ListCategoryServlet" target="right">查看分类</a><br />
</div>
解决方案三:
JavaScript代码执行
javascript如何让页面加载完毕再去执行代码
时间: 2024-10-30 06:47:51