JavaScript 本身是不支持这种查找的, 因为"子对象"只是父对象中的一个引用, 它也可以被其它对象引用, 这样一个"子对象"就可能有多个"父对象". 能实现的是在代码运行中获取它的上级对象.
var Obj = function(){
this.child = {
parent: {},
get_parent: function()
{
return this.parent
}
}
this.init = function()
{
this.child.parent = this
}
this.init()
}
var o = new Obj
console.log(o.child.get_parent())
可以这样<script type="text/javascript">
var a=function(){
this.x=1
var parent = this
this.b=function(){
this.x=2
alert("parent.x "+parent.x)
}
}
var c=new a()
c.b()
开发中,当执行一个事件时需要去知道触发这个事件的对象是谁?那么,如何获取,在这里我就对 event.srcElement与event.target 操作获取略作区分 。
event.srcElement: 表示可以获取当前作用事件的对象。
event.target: 事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素、文档或窗口。
兼容性:
event.target: Ie9+ 火狐、谷歌;
event.srcElement:ie 678;
srcElement 是 IE 下的属性
target 是 Firefox 下的属性
Chrome 浏览器同时有这两个属性
一、利用event.srcElement 获取标签:
event.srcElement.tagName :因为它获取出来的都是以 大写 的形式,例如(“A”,“DIV”)所以需要转换 obj.tagName.toLowerCase()="a"
二、 利用event.srcElement 获取子对象:
第一个子标签 :event.srcElement.firstChild
最后个一个是: event.srcElement.lastChild
第几个孩子: event.srcElement.children[i]
所有孩子: event.srcElement.children
所有孩子节点: event.srcElement.childNodes
三、利用event.srcElement 获取父对象:
.event.srcElement.parentElement; 可以理解成是在鼠标所在对象的上一个对象。
四、vent.target的 判断使用
js中事件是会泡的,event.target它永远是直接接受事件的目标DOM元素
一般是获取这个对象的id,兼容的写法如下:
var targetId = event.target ? event.target.id : event.srcElement.id
获取id后再拿到事件中去判断。
谢谢观读~
��