1)HTMLElement的元数据属性:
checked——获取或设置checked属性是否存在;
classList——获取或设置元素所述的类列表(返回DOMTokenList);
classList.add(<class>)——给元素添加指定的类;
classList.contains(<class>)——如果元素属于指定的类就返回true;
classList.length——返回元素所属类的数量;
classList.remove(<class>)——从元素上移除指定的类;
classList.toggle(<class>)——如果类不存就添加它,如果存在就移除它;
className——获取或设置元素所属的类列表;
dir——获取或设置dir属性的值;
disabled——获取或设置disabled属性是否存在;
hidden——获取或设置hidden属性是否存在;
id——获取或设置id属性的值;
lang——获取或设置lang属性的值;
spellcheck——获取或设置spellcheck属性是否存在;
tabIndex—获取或设置tabindex属性的值;
tagName——返回标签名(标识元素类型);
title——获取或设置title属性的值;
2)与HTML属性相关的属性和方法
attributes——返回应用到元素上的属性数组;
dataset——返回以data-开头的属性数组;
getAttribute(<name>)——返回指定属性的值;
hasAttribute(<name>)——如果元素带有指定的属性则返回true;
removeAttribute(<name>)——从元素上移除指定属性;
setAttribute(<name>,<value>)——应用一个指定名称和值的属性;
3)Text对象的成员
appendData(<string>)——把指定字符串附加到文本块末尾;
data——获取或设置文本;
deleteData(<offest>,<count>)——从文本中移除字符串,第一个数字是偏移量,第二个是要移除的字符数量;
insertData(<offset>,<string>)——在指定偏移量出插入指定字符串;
length——返回字符的数量;
replaceData(<offset>,<count>,<string>)——用指定字符串替换一段文本;
replaceWholeText(<string>)——替换全部文本;
splitText(<number>)——将现有的Text元素在指定偏移量出一分为二;
substringData(<offset>,<count>)——返回文本的子串;
wholeText——获取文本;
4)DOM操作成员
appendChild(HTMLElement)——将指定元素添加为当前元素的子元素;
removeChild(HTMLElement)——从当前元素上移除指定的子元素;
replaceChild(HTMLElement,HTMLElement)——替换当前元素的某个子元素;
cloneNode(boolean)——复制一个元素;
compareDocumentPosition(HTMLElement)——判断一个元素的相对位置;
innerHTML——获取或设置元素的内容;
outerHTML——获取或设置某个元素的HTML和内容;
insertAdjacentHTML(<pos>,<text>)——相对于元素插入HTML;
其中pos(参数):afterbegin——将片段作为当前元素的第一个子元素插入;
afterend——将片段插入当前元素之后;
beforebegin——将片段插入当前元素之前;
beforeend——将片段作为当前元素的最后一个子元素插入;
insertBefore(<newElem>,<childElem>)——在第二个(子)元素之前插入第一个元素;
isEqualNode(<HTMLElement>)——判断指定元素是否与当前元素相同;
isSameNode(<HTMLElement>)——判断指定元素是否就是当前元素;
用document对象创建元素:
createElement(<tag>)——创建一个属于指定标签类型的新HTMLElement对象;
createTextNode(<text>)——创建一个带有指定内容的新Text对象;
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>上海远地资产管理有限公司</title>
<meta name="author" content="jason"/>
<meta name="description" content="上海远地资产管理有限公司(简称:远地资产),是一家专业的互联网金融服务平台."/>
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
<style>
p{
border: medium double black;
clear:left;
}
pre{
border:thin solid green;
}
p.newclass{
background-color: grey;
color: white;
}
table{
border:thin solid black;
border-collapse: collapse;
margin: 10px;
float: left;
}
td{
padding: 4px 5px;
}
</style>
</head>
<body>
<p id="textblock" dir="ltr" lang="zh-CN" class="yuandi numbers" data-fruit="apple" data-sentiment="like">
远地本着“构筑诚信,永续发展”的理念为客户提供专业的理财服务、财富管理以及产品方案推荐。
远地都进来看看撒将通过自身的专业优势和有效的信息交流平台,<b>为资金富裕方和资金需求方打造一个专业</b>,诚信,共赢,睿智的服务平台,
帮助客户实现稳定、安全的财富增值,帮助更多优秀的中小型企业融资成功。
</p>
<pre id="results"></pre>
<button id="pressme">点击改变样式</button>
<pre id="results2"></pre>
<button id="toggle">切换样式</button>
<pre id="results3"></pre>
<pre id="results4"></pre>
<pre id="results5"></pre>
<button id="pressme1">点击获取字符数量</button>
<pre id="results6"></pre>
<table border="1">
<thead>
<tr>
<th>Name</th><th>Color</th>
</tr>
</thead>
<tbody id="fruitsBody">
<tr>
<td>Banana</td><td>Yellow</td>
</tr>
<tr id="apple">
<td>Apple</td><td>Red</td>
</tr>
</tbody>
</table>
<table border="1">
<thead>
<tr>
<th>Fruit</th><th>Color</th>
</tr>
</thead>
<tbody id="fruitsBody3">
<tr id="plumrow">
<td>Plum</td><td>Purple</td>
</tr>
</tbody>
</table>
<pre id="results7"></pre>
<button id="add">添加元素</button>
<button id="remove">移除元素</button>
<button id="move">移动元素</button>
<table border="1">
<thead>
<tr>
<th>Multiply</th><th>Results</th>
</tr>
</thead>
<tbody id="fruitsBody2">
<tr>
<td class="sum">1*1</td><td class="result">1</td>
</tr>
</tbody>
</table>
<button id="copy">复制元素</button>
<table border="1">
<thead>
<tr>
<th>Fruit</th><th>Color</th>
</tr>
</thead>
<tbody>
<tr id="applerow">
<td>Plum</td><td>Purple</td>
</tr>
</tbody>
</table>
<textarea rows="3" id="results8"></textarea>
<p>
<button id="inner">Inner HTML</button>
<button id="outer">Outer HTML</button>
</p>
<table border="1">
<thead>
<tr>
<th>Fruit</th><th>Color</th>
</tr>
</thead>
<tbody id="fruitsBody4">
<tr id="targetrow">
<td>placeHolder</td>
</tr>
</tbody>
</table>
<p id="buttons">
<button id="ab">After Begin</button>
<button id="ae">After End</button>
<button id="bb">Before Begin</button>
<button id="be">Before End</button>
</p>
<p>
<button id="insert">插入元素</button>
</p>
<script>
var results=document.getElementById("results");
var elem=document.getElementById("textblock");
//使用基本元数据属性
results.innerHTML+="tag:"+elem.tagName+"\n";
results.innerHTML+="id:"+elem.id+"\n";
results.innerHTML+="dir:"+elem.dir+"\n";
results.innerHTML+="lang:"+elem.lang+"\n";
results.innerHTML+="hidden:"+elem.hidden+"\n";
results.innerHTML+="disabled:"+elem.disabled+"\n";
//使用className属性
document.getElementById("pressme").οnclick=function(e){
elem.className+=" newclass";
}
//使用classList属性
var results2=document.getElementById("results2");
document.getElementById("toggle").οnclick=toggleClass;
listClasses();
function listClasses(){
var classlist=elem.classList;
results2.innerHTML="Current classes: "
for(var i=0;i<classlist.length;i++){
results2.innerHTML+=classlist[i]+" ";
}
}
function toggleClass(){
elem.classList.toggle("newclass");
listClasses();
}
//使用属性方法
var results3=document.getElementById("results3");
results3.innerHTML="元素是否有lang属性:"+elem.hasAttribute("lang")+"\n";
results3.innerHTML+="lang属性值是:"+elem.getAttribute("lang")+"\n";
results3.innerHTML+="设置lang属性\n";
elem.setAttribute("lang","en-US");
results3.innerHTML+="lang属性值是:"+elem.getAttribute("lang")+"\n";
//使用dataset属性
var results4=document.getElementById("results4");
for(var attr in elem.dataset){
results4.innerHTML+=attr+"\n";
}
results4.innerHTML+="data-fruit的属性值是:"+elem.dataset["fruit"];
//使用所有属性
var results5=document.getElementById("results5");
var attrs=elem.attributes;
for(var i=0;i<attrs.length;i++){
results5.innerHTML+="Name:"+attrs[i].name+" value:"+attrs[i].value+"\n";
}
attrs["data-fruit"].value="banana";
results5.innerHTML+="data-fruit的属性值是:"+attrs["data-fruit"].value;
//处理文本
var results6=document.getElementById("results6");
document.getElementById("pressme1").οnclick=function(){
var textElem=elem.firstChild;
results6.innerHTML="这个p元素含有"+textElem.length+"chars\n";
textElem.replaceWholeText("这是一个新字符串");
}
//创建和删除元素
var tableBody=document.getElementById("fruitsBody");
document.getElementById("add").οnclick=function(){
var row=tableBody.appendChild(document.createElement("tr"));
row.setAttribute("id","newrow");
row.appendChild(document.createElement("td")).appendChild(document.createTextNode("Plum"));
row.appendChild(document.createElement("td")).appendChild(document.createTextNode("Purple"));
}
document.getElementById("remove").οnclick=function(){
var row=document.getElementById("newrow");
row.parentNode.removeChild(row);
}
//复制元素
var tableBody2=document.getElementById("fruitsBody2");
document.getElementById("copy").οnclick=function(){
var count=tableBody2.getElementsByTagName("tr").length+1;
var newElem=tableBody2.getElementsByTagName("tr")[0].cloneNode(true);
newElem.getElementsByClassName("sum")[0].firstChild.data=count+"*"+count;
newElem.getElementsByClassName("result")[0].firstChild.data=count*count;
tableBody2.appendChild(newElem);
}
//移动元素
document.getElementById("move").οnclick=function(){
var appleElem=document.getElementById("apple");
document.getElementById("fruitsBody3").appendChild(appleElem);
}
//比较元素对象
var elemByID=document.getElementById("plumrow");
var elemByPos=document.getElementById("fruitsBody3").getElementsByTagName("tr")[0];
if(elemByID.isSameNode(elemByPos)){//firefox不支持
document.getElementById("results7").innerHTML="元素是同一个";
}
//使用innerhtml和outerhtml
var results8=document.getElementById("results8");
var applerow=document.getElementById("applerow");
document.getElementById("inner").οnclick=function(){
results8.innerHTML=applerow.innerHTML;
}
document.getElementById("outer").οnclick=function(){
results8.innerHTML=applerow.outerHTML;
}
//插入html片段
var target=document.getElementById("targetrow");
var buttons=document.getElementById("buttons").getElementsByTagName("button");
for(var i=0;i<buttons.length;i++){
buttons[i].οnclick=handleButtonPress;
}
function handleButtonPress(e){
if(e.target.id=="ab"){//firefox不支持
target.insertAdjacentHTML("afterbegin","<td>After Begin</td>");
}else if(e.target.id=="be"){
target.insertAdjacentHTML("beforeend","<td>Before End</td>");
}else if(e.target.id="bb"){
target.insertAdjacentHTML("beforebegin","<tr><td colspan='2'>Before Begin</td>");
}else{
target.insertAdjacentHTML("afterend","<tr><td colspan='2'>After End</td>");
}
}
//将一个元素插入文本块
document.getElementById("insert").οnclick=function(){
elem.firstChild.splitText(10);
var newText=elem.childNodes[1].splitText(8).previousSibling;
elem.insertBefore(document.createElement("b"),newText).appendChild(newText);
}
</script>
</body>
</html>