3.3 系统内部对象 —— DOM节点对象

HTML DOM节点树
HTML DOM定义了访问和操作HTML文档的标准方法。DOM将HTML文档表达为树结构。具体示例如下:
3.3 系统内部对象 —— DOM节点对象_第1张图片

<html>
    <head>
        <title>文档标题title>   
    head>
    <body>
        我的链接a>
        <h1>我的标题h1>    
    body>
html> 

DOM节点对象概述
DOM节点对象泛指标记对象、标记属性对象、标记内的子标记对象或标记内的文本子对象,通过标记对象可获取其属性、子标记或文本内容子对象

DOM节点对象的通用属性
标记、标记属性、标记内子标记对象或文本子对象等DOM节点对象都具有nodeType节点类型、nodeName节点名称和nodeValue节点值三个通用属性。
nodeType 节点类型,取值含义为:
1 标记节点(包括body) 2 属性节点
3 文本节点 8 注释节点
9 文档节点

nodeName 节点名称,不同类型对象的属性值含义不同
body节点对象的nodeName值为:#document 。
标记节点对象的nodeName值为:标记名(大写),而且等价tagName属性。
属性节点对象的nodeName值为:属性名。
文本节点对象的nodeName值为:#text 。

nodeValue 节点值
标记节点对象(包括body)没有nodeValue属性,其值为null
属性节点对象的nodeValue值为属性值
文本节点对象的nodeValue值为所包含的文本字符串

注意:1) 文本区域标记(textarea)的文本节点应使用value属性,若用nodeValue属性很容易出错。2) 可以通过直接赋值为任意节点对象添加任意类型的属性

var a=getElementById("idValue");
a.propertyName="propertyValue";                                                                                                                 

标记对象的所属类

在html文档中每出现一个标记就相当于为JavaScript创建了一个相应的对象,这些对象对应的类名一般与标记名一致,但第一个字母必须大写。
如body、p、div标记分别为Body、P、Div类的对象
其他的标记:

Anchor 锚或超链接a对象的类名
Image 嵌入图像img对象的类名
TableRow 行标记tr对象的类名
TableCell 单元格标记td对象的类名
Input text 文本框
Input password 密码框
Input hidden 隐藏域
Input checkbox 选择框
Input radio 单选框
Input file 文件选择框
Input reset 重置按钮
Input submit 提交按钮
Input button 按钮对象的类名

使用JS代码创建新标记对象的方法:

  • 用documen文档对象的createElement(“标记名”) 创建新标记对象
  • 直接使用类名创建标记对象

创建后,可通过直接赋值或调用setAttribute()方法为标记对象添加设置各种属性或文本内容

标记对象的属性
一个标记的所有属性都是该标记对象的子对象,通过document获取标记对象后,可使用“对象名.属性名”或调用getAttribute()、setAttribute()方法获取或设置该对象的任意属性值。属性子对象也可通过自己的属性或方法操作自己的属性。

标记对象的标准属性: (6个)

id id属性子对象
className class属性子对象
style CSS样式属性子对象
title 提示属性子对象
dir 书写方向属性子对象
lang 语言属性子对象

标记对象的方法
创建获取标记对象后可使用“对象名.方法([参数])”任意调用该对象具有的方法
标记对象的通用方法:

focus( ) 当前标记获得焦点
blur( ) 当前标记失去焦点—把焦点从当前元素上移开
setAttribute(“属性名”, “属性值”) 为当前标记添加属性或替换已有属性值,也可通过直接赋值添加任意属性:a.pName=“pValue”;
getAttribute(“属性名”) 获取当前标记指定属性的属性值
cloneNode(include) 返回当前标记的副本,即复制的当前节点

父标记操作子标记对象的方法:

getElementById(“id”) 获取标记内指定id的子元素对象
getElementsByName(“name”) 获取标记内name子元素对象数组
getElementsByTagName(“tagname”) 获取标记内标记名子元素集合
hasChildNodes() 判断当前标记内是否具有子节点,有返回true否则false
appendChild(子节点对象) 在当前标记内的尾部添加指定的子节点
insertBefore(新子节点对象, 插入位置原子节点对象) 在指定原子节点之前插入新子节点,返回新插入子节点对象
replaceChild(新子节点对象, 被替换子节点对象) 用新子节点替换原有子节点,返回被替换的子节点对象
removeChild(childNode) 删除标记内指定子节点及其子节点

某些标记对象的专有属性或方法
1、body标记的专有属性: offsetWidth / offsetHeight
2、head中link标记的专有属性:disabled
3、a超链接标记、head中base标记的专有属性:target
4、form表单标记的专有属性及方法:elements[ ]、reset()、submit()
5、form内所有表单元素的通用属性:form
6、单选、复选框、reset重置按钮、submit提交按钮、button按钮的专有方法:click( )
7、文本框、密码框、文本区、文件选择框的专有方法:select()
8、select下拉列表或滚动列表框的专有属性与方法:selectedIndex、options[]、
remove(index)、add(option, before)
9、table表格对象的专有属性与方法:rows[]、cells[]、tBodies[] / tFoot / tHead、
createCaption()、deleteCaption()、insertRow(index)、deleteRow(index)、
createTFoot() / deleteTFoot()、createTHead() / deleteTHead()
10、tr表格行对象的专有属性与方法:rowIndex、cells[]、deleteCell(index) 、
insertCell(index)

你可能感兴趣的:(数据可视化与前端技术)