代码如下
<div id="inputarea" contentEditable="true" style="width:700px">
<h1 class="edit" contentEditable="true" onchange="alert('修改')">hello</h1>
<span class="edit" contentEditable="true">test</span>
</div>
当我的焦点在“hello”并且进行修改操作时,此时获取的对象是div标签,如何在这种情况下获得h1对象,显示出“修改”?
补充一下,需求是不能使用鼠标操作
关键看你事件怎么绑定的,如果只是绑定到div上,那获取不到。需要把单击事件绑定到h1上
<!DOCTYPE html>
<html>
<body>
<div id="inputarea" contentEditable="true" style="width:700px">
<h1 class="edit" contentEditable="true" onclick='h1click(this)'>hello</h1>
<span class="edit" contentEditable="true">test</span>
</div>
<script>
function h1click(self){
alert(self.innerHTML);
}
</script>
</body>
</html>
通过事件对象来获取
xxx.onclick=function(e){
e=e||window.event;
var o=e.target||e.srcElement
}
得到对象进行操作的话还是绑定onclick吧,带this!
点击h1有测试效果吗?我只能说可能是事件冒泡,点击h1的时候冒泡了,同时处罚了div的单击事件
事件绑定到h1
< h1 class="edit" contentEditable="true" onclick='h1click(this)'>hello