请问javascript的节点名nodename问题?

来源:百度知道 编辑:UC知道 时间:2024/05/24 20:20:51
请问javascript的节点名nodename问题?

第一个问题:
<html>
<body>
<input type=button value=确定 onclick="alert(document.getElementsByTagName('HTML').nodeName)">
</body>
</html>

话说每个html元素都是一个dom对象,包括<html>,为什么没弹出html的dom节点名?

第二个问题:

<html>里面能不能加id和name比如<html id="a">或<html id="a">
<body>里面能不能加id和name比如<body id="a">或<body id="a">

第三个问题:

<input type=button value=确定 onclick="alert(window.nodeName)">
<input type=button value=确定 onclick="alert(document.nodeName)">

为什么window没有节点名,而document有节点名,document的节点名为#document,请问这个#是啥意思?

第四个问题:

<input type=button value=确定 id="aaa" onclick="alert(this.nodeName)">

有个东西半懂半不懂,不大清楚,这里this的(dom对象button),那么button对象就是dom节点

那么这里的dom节点名应该是butto

第一个问题:因为document指的就是HTML,而document.getElementByTagName等都是在HTML元素内找东西,当然不能找到它本身,所以不会出现nodeName!有一句话你说错了,每个HTML节点都是一个document对象,是一个DOM对象之一。

第二:ID只是对其CSS或者JAVASCRIPT控制才加入的一个属性。至于有人对BODY作属性,也可以对BODY作控制,但CSS中用BODY就可以设置其样式了,而在JAVASCRIPT中用document.body也可以直接调用BODY了,所以没有人这样用,但这样用是可行的。而HTML既不要CSS样式,也不用JAVASCRIPT去写其的内容。所以没有这种用法。在Javascript中DOCUMENT就是指提HTML元素。至少没有人会用这样的形式。
第三,WINDOW是没有节点名的,它只是一个所有对象的集合而已,我们说的DOM是文档极的,而不是窗口级的,HTML就是文档,而window就是窗口。所以很多时间我想用window.title去控制<title>结果是不成功的!document前边加上了#号表示这是一个常量的,而就是说可以在JS中直接使用。而不像其他的,需要先找到对象才行。
第四,对象是input,在INPUT中有一个TYPE属性,这个属性是一个枚举值,根据它的不同而产生不同的效果,但对象本身却是INPUT,在DOM中我们把属性也看作是一类节点的,就个就是属性结点,属性节点与对象节点的区别就是属性节占与文本节点是没有子节点的,而对象节点则有!
而nodeName就是INPUT的一个文本节点,用来表示INPUT节点的节点名称。所以INPUT节点的名称与其TYPE类型是没有关系的!
第五,在DOM中对象是IMAGE,但节点名称是IMG,这并不冲突,你养的宠物是狗,但你可以叫它的名字是“狗”,但也可以不叫。在HTML中IMG就是名字,至于说你可以说它是IMAGE对象,放在这儿,我还想叫它图片对象也行的!