飞比寻常 (JOE) 生,简单,活,简单,生活,不简单!
JOE个人网站
JOE个人网站,不仅仅是一个网站,更像是一个展现自我的平台,致力于让朋友们都可以
有所感触,有所收获。
1、每一个标签都可以认为是一个节点
2、节点有节点名
nodeName - 节点名就是标签名(大写)
节点有类型
nodeType
对于普通标签 1
对于属性 2
对于普通文本 3
在html代码中 所有内容都是节点,包括标签,属性,文本
节点有值
nodeValue
不是所有的节点都有值,
文本节点 有值
属性节点 有值
3、操作节点
a、找节点
父 parentNode
子 childNodes 一个父亲可以有多个儿子,所以子节点是一组内容
在标准html中,换行也认为是一个节点
firstChild 获取老大(第一个子节点)
lastChild 获取老末(最后一个子节点)
hasChildNodes() 判断有没有子节点的方法
兄 previousSibling
ob.previousSibling.innerHTML
弟 nextSibling
b、使用节点
1、创建节点
createElement(标签名)
2、追加节点
appendChild(对象)
---------------------previousSibling--------------------------
<html>
<head>
<script>
window.onload=function() {
var ob=document.getElementById('bid');
if(ob.previousSibling.nodeName=='#text') {
alert('文本节点不可以操作');
}
}
</script>
</head>
<body>
<p>
<b>a</b>
<b id='did'>b</b>
</p>
</body>
</html>
-----------------nodelist----------------------------
<script>
window.onload=function() {
var op=document.getElementById('pid');
alert(op.parentNode.parentNode.previousSibling.previousSibling.childNodes[1].nodeName)
}
</script>
</head>
<body>
<div>
<b></b>
</div>
<div>
<div>
<p id='pid'></p>
</div>
</div>
<div>
<p>
<i></i>
</p>
</div>
</body>
-----------------createElement-------------------------
<script>
window.onload=function() {
var odiv=document.getElementById('did');
var oimg=document.createElement('img');
oimg.src='./a.jpg';
odiv.appendChild(oimg);
}
</script>
</head>
<body>
<div id='did'></div>
</body>
-------------show---------------------------------
<script>
window.onload=function() {
var odiv=document.getElementById('did');
var oimg=document.createElement('img');
oimg.src='./a.jpg';
odiv.appendChild(oimg);
}
</script>
</head>
<body>
<div id='did'></div>
</body>
-----------------------------------------
1、删除节点
removeChild
function cl(oimg) {
document.body.removeChild(oimg);
}
2、替换节点
replaceChild(新的对象,要被替换的对象);
function change(op) {
oimg=document.createElement('img');
oimg.src='./a.jpg';
document.body.replaceChild(oimg,op);
}
3、克隆节点
cloneNode(true|false);
function kelong(op) {
var newop=op.cloneNode(true); //true所有属性和子节点,包括文件节点都被复制,如果是false,只复制标签而不复制属性和子节点;
document.body.appendChild(newop);
}
4、属性操作
a、设置属性 setAttribute(属性名,属性值);
oimg.setAttribute('src','./a.jpg');
b、获取属性 getAttribute(属性名)
function change(op) {
var oimg=document.createElement('img');
oimg.setAttribute('src','./a.jpg');
oimg.onclick=function() {
alert(oimg.getAttribute('src'));
}
document.body.appendChild(oimg);
}
c、删除属性 removeAttribute(属性名);
function change(op) {
var oimg=document.createElement('img');
oimg.setAttribute('src','./a.jpg');
oimg.setAttribute('title','我爱你美女');
oimg.onclick=function() {
oimg.removeAttribute('title');
}
document.body.appendChild(oimg);
}
5、JS中的json
var str="{'name':'ztz','age':18}"; //对象的json格式
var str="['a','b','c']"; //数组的json格式
var obj=eval('('+str+')');
6、onchange 当下拉框发生变化的时候会自动触发该事件;
-----------------removeChild---------------------------------
<script>
function cl(oimg) {
document.body.removeChild(oimg);
}
</script>
</head>
<body>
<img src='./a.jpg' onclick='cl(this)'/>
</body>
------------------------replaceChild----------------------------------
<script>
function change(op) {
oimg=document.createElement('img');
oimg.src='./a.jpg';
document.body.replaceChild(oimg,op);
}
</script>
</head>
<body>
<p onclick='change(this)'>abc</p>
</body>
------------------cloneNode------------------------------------
<script>
function kelong(op) {
var newop=op.cloneNode(true);//true 所有属性和子节点,包括文本节点都被复制,如果是false,只复制标签而不复制属性和子节点
document.body.appendChild(newop);
}
</script>
</head>
<body>
<p onclick='kelong(this)'>abc</p>
</body>
---------------getAttribute---------------------------
<script>
function change(op) {
var oimg=document.createElement('img');
oimg.setAttribute('src','./a.jpg');
oimg.onclick=function() {
alert(oimg.getAttribute('src'));
}
document.body.appendChild(oimg);
}
</script>
</head>
<body>
<p onclick='change(this)'>abc</p>
</body>
-----------------------------------------