在方法中使用this做为参数的问题

ahking 2012-04-11 03:44:04

<div class="left_MenuTitle" onclick="switchMenu(this)">
<div class="arrowUp" ></div>6666666666</div>
<div>

js方法如下:
function switchMenu(obj) {
var arrowDiv = obj.firstChild;
alert(arrowDiv.className);
}

执行时提示undefined,请问是怎么回事?
...全文
116 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahking 2012-04-11
  • 打赏
  • 举报
回复
ie9下不行,但兼容模式可以
ahking 2012-04-11
  • 打赏
  • 举报
回复
同样的例子,我想设置style的display属性,结果提示:
无法获取属性“display”的值: 对象为 null 或未定义
var contentDiv = obj.nextSibling;
alert(contentDiv);
if (contentDiv.style.display == "none") {
arrowDiv.className = "arrowDown";
contentDiv.style.display = ""
}
else {
arrowDiv.className = "arrowUp";
contentDiv.style.display = "none"
}
峭沙 2012-04-11
  • 打赏
  • 举报
回复
	<div class="left_MenuTitle" onclick="switchMenu(this)">
<div class="arrowUp" ></div>6666666666</div>
</div>


<script>
function switchMenu(obj) {
var arrowDiv = obj.firstElementChild || obj.firstChild;
alert(arrowDiv.className);
}
</script>
ahking 2012-04-11
  • 打赏
  • 举报
回复
nextSibling获取兄弟节点不会这样吧
三石-gary 2012-04-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

HTML code
<div class="left_MenuTitle" onclick="switchMenu(this)"><div class="arrowUp" ></div>6666666666</div>
<div>


换行也算节点
子元素和父元素放一行上
[/Quote]
+11
ahking 2012-04-11
  • 打赏
  • 举报
回复
居然会这样?!
挨踢直男 2012-04-11
  • 打赏
  • 举报
回复
 <div class="left_MenuTitle" onclick="switchMenu(this)"><div class="arrowUp" ></div>6666666666</div>
<div>


换行也算节点
子元素和父元素放一行上
001007009 2012-04-11
  • 打赏
  • 举报
回复
<div class="left_MenuTitle" onclick="switchMenu(this)"><div class="arrowUp" ></div>6666666666</div><div>
<script>
function switchMenu(obj) {
var arrowDiv = obj.firstChild;
alert(arrowDiv.className);
}
</script>

换行的话,会把textNode 认为firstChild

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧