DOM基础

第六章 DOM基础
一、使用DOM
1.获取html对象
nodeName\nodeValue\nodeType\ownerDocument\firstChild\lastChild\childNodes\
previousSibling\nextSiling\hasChildNodes\attributes\appendChild\removeChild
replaceChild\insertChild

node接口定义的不同的节点类型常量(数字表示相应的类型)
1=Node.ELEMENT_NODE
2=Node.ATTRIBUTE_NODE
3=Node.TEXT_NODE
4=Node.CDATA_SECTION_NODE
5=Node.ENTITY_REFERENCE_NODE
6=Node.ENTIRY_NODE
7=Node.PROCESSING_INSTRUCTION_NODE
8=Node.COMMENT_NODE
9=Node.DOCUMENT_NODE
10=Node.DOCUMENT_TYPE_NODE
11=Node.DOCUMENT_FRAGMENT_NODE
12=Node.NOTATION_NODE

var oHtml=document.documentElement;
//获取子节点
oHtml.childNodes.item(0) 或者 oHtml.childNodes[index]

o.attributes.getNamedItem(name)返回nodeName等于name的节点
o.attributes.removeNamedItem(name)删除nodeName等于name的节点
o.attributes.setNamedItem(node)将node插入到节点中,按nodeName属性进行索引
o.attributes.item(pos)获取pos位置节点
o.getAttribute(name)
o.setAttribute(name,newvalue)
o.removeAttribute(name)

getElementsByTagName()
getElementsByName()
getElementById

2.创建和操作节点

createElement()\createTextNode()\appendChild()

function createElement(){
var oP=document.createElement("input");
var oText=document.createTextNode("value");
oP.appendChild(oText);
document.body.appendChild(oP);
}

removeChild()\replaceChild\insertBefore()

createDocumentFragment()创建一个文档碎片,把所有新节点附加其上,然后把文档碎片的内容一次性添加到document中。
function createElement(){
var arrText=["first","second","third"];
var oFragment=document.createDocumentFragment();
for(var i=0;i<arrText.length;i++){
var oP=document.createElement("p");
var oText=document.createTextNode(arrText[i]);
oP.appendChild(oText);
oFragment.appendChild(oP);
}
document.body.appendChild(oFragment);
}

3.HTML DOM 特征功能
eg: <img class="abc" src="abc.jpg" border="0" />
oImg=document.getElementsByTagName("img");
oImg.getAttribute("src")=oImg.src;
oImg.setAttribute("src","a.jpg") = (oImg.src="a.jpg")
但是对于class属性要这样获取oImg.className

HTML DOM 给<table/>/<tbody>/<tr/>添加的新特性和方法

给<table/>元素添加了以下内容
caption-指向<caption/>元素
tBodies-<tbody/>元素集合
tFoot-指向<tfoot/>元素
tHead-指向<thead/>元素
rows-表格中所有行的集合
createTHead-创建<thead/>元素并将其放入表格
createTFoot-创建<tfoot/>元素并将其放入表格
createCaption-创建<caption/>元素并将其放入表格
deleteTHead-删除<thead/>元素
deleteTFoot-删除<tfoot/>元素
deleteCaption-删除<caption/>元素
deleteRow(position)-删除指定位置上的行
insertRow(position)-在指定位置插入行

<tbody/>元素添加了以下内容
rows-<tbody>中所有行的集合
deleteRow(position)-删除指定位置上的行
insertRow(position)-在指定位置插入行

<tr/>元素添加了以下内容
cells-<tr/>元素所有单元格集合
deleteCell(position)-删除给定位置上单元格
insertCell(position)-在指定位置插入一个新的单元格

//创建表格
var oTable=document.createElement("table");
oTable.setAttribute("border","1");
oTable.setAttribute("width","100%");

//create the tbody
var oTbody=document.createElement("tbody");
oTable.appendChild(oTbody);

//create the first row
oTbody.insertRow(0);
oTbody.rows[0].insertCell(0);
oTbody.rows[0].cells[0].appendChild(document.createTextNode("Cell 1,1"));
oTbody.rows[0].insertCell(1);
oTbody.rows[0].cells[1].appendChild(document.createTextNode("Cell 2,1"));

//create the second row
oTbody.insertRow(1);
oTbody.rows[1].insertCell(0);
oTbody.rows[1].cells[0].appendChild(document.createTextNode("Cell 1,2"));
oTbody.rows[1].insertCell(1);
oTbody.rows[1].cells[1].appendChild(document.createTextNode("Cell 2,2"));

//add the table to the document body
document.body.appendChild(oTable);

遍历DOM------NodeIterator
NodeIterator还有nextNode()\previousNode()方法

var iterator=document.createNodeIterator(document,NodeFilter.SHOW_ALL,null,false)
eg:var iterator=null;
function makeList(){
var oDiv=document.getElemenetById("div1");
var oFilter=new Object();
oFilter.acceptNode=function(oNode){//此方法用于过滤掉标签为p的节点
return (oNode.tagName=="p")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT;
}
iterator=document.createNodeIterator(oDiv,NodeFilter.SHOW_ALL,null,false);
while(iterator.nextNode()){
......
}
}
遍历DOM------TreeWalker
TreeWalker还有nextNode()\previousNode()\parentNode()\firstNode()\lastNode()\nestSibling()\previousSibling()方法

var iterator=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,false)
eg:var iterator=null;
function makeList(){
var oDiv=document.getElemenetById("div1");
var oFilter=new Object();
oFilter.acceptNode=function(oNode){//此方法用于过滤掉标签为p的节点
return (oNode.tagName=="p")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT;
}
iterator=document.createTreeWalker(oDiv,NodeFilter.SHOW_ALL,null,false);
while(iterator.nextNode()){
......
}
}
Stkcd [股票代码] ShortName [股票简称] Accper [统计截止日期] Typrep [报表类型编码] Indcd [行业代码] Indnme [行业名称] Source [公告来源] F060101B [净利润现金净含量] F060101C [净利润现金净含量TTM] F060201B [营业收入现金含量] F060201C [营业收入现金含量TTM] F060301B [营业收入现金净含量] F060301C [营业收入现金净含量TTM] F060401B [营业利润现金净含量] F060401C [营业利润现金净含量TTM] F060901B [筹资活动债权人现金净流量] F060901C [筹资活动债权人现金净流量TTM] F061001B [筹资活动股东现金净流量] F061001C [筹资活动股东现金净流量TTM] F061201B [折旧摊销] F061201C [折旧摊销TTM] F061301B [公司现金流1] F061302B [公司现金流2] F061301C [公司现金流TTM1] F061302C [公司现金流TTM2] F061401B [股权现金流1] F061402B [股权现金流2] F061401C [股权现金流TTM1] F061402C [股权现金流TTM2] F061501B [公司自由现金流(原有)] F061601B [股权自由现金流(原有)] F061701B [全部现金回收率] F061801B [营运指数] F061901B [资本支出与折旧摊销比] F062001B [现金适合比率] F062101B [现金再投资比率] F062201B [现金满足投资比率] F062301B [股权自由现金流] F062401B [企业自由现金流] Indcd1 [行业代码1] Indnme1 [行业名称1] 季度数据,所有沪深北上市公司的 分别包含excel、dta数据文件格式及其说明,便于不同软件工具对数据的分析应用 数据来源:基于上市公司年报及公告数据整理,或相关证券交易所、各部委、省、市数据 数据范围:基于沪深北证上市公司 A股(主板、中小企业板、创业板、科创板等)数据整理计算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值