首先,父节点是相对于HTML文档的DOM树而言的。如下面的HTML:
<html><head></head>
<body>
<div id="id1">
<div id="id2">
</div>
</div>
</body>
</html>
在这个HTML的DOM树里面,id2这个div节点的父节点是id1这个div,页id1这个div的父节点是body。
一般来说,每个元素都有一个父节点,有0到多个子节点。
而Javascript中,修改一个DOM节点的外观,是通过修改这个DOM节点对象的属性来实现的。
例如:
var div2 = document.getElementById('id2')// 取id=id2这个节点
var div1 = div2.parentNode// div2的父节点,也就是id1这个div节点。
div1.style.border = '1px solid red'// 把div1的边框设置为1像素实线红边框
所以,应该是通过修改某对象本身的属性来实现这个对象外观的设置(并非通过修改子节点的属性,如xxx.parentNode.style.display = 'block'只是通过xxx.parentNode来引用到xxx父节点,最终修改的是父节点的属性,跟xxx没啥关系)
获取目标元素的方法很多,例如取子节点:div1.childNodes,(取div1的子节点列表)
关于HTML及Javascript的学习,网上有很多资料,可以看一下。例如:
W3School: http://www.w3school.com.cn/html/index.asp
你可以换个角度思考,判断p是不是c2的父亲function isFatcher(p, c2){
var c = c2
while(c.parentNode){
c = c.parentNode
if(c == p)
return true
}
return false
}
<HTML><HEAD>
</HEAD>
<BODY>
<script>
function find(obj)
{
//tr的对象obj
//obj.parentElement就是table
//obj.parentElement.children.length,table的孩子数
//obj.parentElement.children(1),就是table的第2个孩子(tr)
//obj.parentElement.children(1).children(0),就是就是table的第2个孩子(tr)的第一个孩子(td),就这样找...都能找到
alert(obj.parentElement.children(1).children(0).innerText)
}
</script>
<table width='50%' border=1>
<tr onClick='find(this)'>
<td>1
</td>
<td>2
</td>
</tr>
<tr>
<td>3
</td>
<td>4
</td>
</tr>
</table>
</BODY>
</HTML>