js里面的父节点作用

JavaScript023

js里面的父节点作用,第1张

首先,父节点是相对于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>