标签:子节点 ast 识别 窗口 value 位置 abc orm 取消
一、DOM(Document Object Model):文本对象模型//通过标签名获取DOM对象。返回的是一个集合,需通过具体下标获取某个具体的DOM对象。
var oDiv=document.getElementsByTagName("div");
//通过ID获取DOM对象。
var oBox=document.getElementById("box");
//通过className来获取DOM对象,返回的是一个集合,需通过具体下标获取某个具体的DOM对象。
var oBox=document.getElementsClassName("box");
children:非标准属性,返回指定元素的所有子元素,是一个HTMLCollection。
var o=oDiv.children;
childNodes:标准属性,返回指定元素的所有子元素和文本节点,是一个NodeList。(折行就有一个文本节点)
var oo=oDiv.childNodes;//IE6,7,8会出现异常(无闭合,返回text;<a>返回路径。)
节点属性
(1)节点类型nodeType:console.log(oo[0].nodeType);//返回值:元素节点--1;属性节点--2;文本节点--3;
(2)节点名称nodeName:console.log(oo[0].nodeName);//即标签名称,文本节点为#text。
(3)节点内容nodeValue:console.log(oo[0].nodeValue);//node实际上是指针,其本身无值,故该属性的返回值始终为null。
var allNode=document.getElementsByTagName("*");
(2)获取父元素
oLi.parentNode.style.background="red";
oDiv.offsetParent;//获取定过位的父元素,若没有则返回body。
(3)获取第一个孩子
oUl.firstChild;//适用IE6,7,8
oUl.firstElementChild;//适用标准浏览器,IE6,7,8不兼容。
//兼容处理:
var first=obj.firstChild ? obj.firstChild : obj.firstElementChild ;
(4)获取最后一个孩子
oUl.lastChild;
oUl.lastElementChild;
//兼容性及兼容处理同上。
(5)获取兄弟节点
oLi.nextSibling;
oLi.nextElementSibling;
oLi.previousSibling;
oLi.previousElementSibling;
var li=document.createElement("li");//创建子节点
oUl.appendChild(li);//往父元素追加子节点(同一节点只能添加一次)
var text=document.createTextNode("xxx");//创建文本节点
li.appendChild(text);//将文本节点追加到元素中。
//li.innerHTML="xxx";
//li.nodeValue;//错误。
//li.childNodes[0].nodeValue;//正确,有返回值。
li.childNode[0].nodeValue="<p></p>";//不能识别标签,innerHTNML能够识别标签。
(2) 插入节点 insertBefore
父元素.insertBefore(newNode,someNode);//someNode表示插入节点的参考位置。
如果插入一个已有的子元素,会先删除自己原来的,然后插入到指定位置。(appendChild也一样。)
(3) 删除节点 removeChild
父元素.removeChild(要删除的子节点);//返回被删除的节点。
(4) 替换节点 replaceChild
父元素.replaceChild(newNode,被替换的节点);
(5) 复制节点(克隆节点)cloneNode
被克隆节点.cloneNode(false/true);//false:浅复制(只复制标签);true:深复制(整个结构都被复制,包括标签里的内容)。
tab.tBodies[0].rows[0].cells[0];
tab.tHead.rows[0].cells[0];
tab.tFood.rows[0].cells[0];
表单获取元素
name可以标识一个元素:from1.nameValue.属性。
from1.onsubmit/onreset=function(){
//return true;//提交(默认值)
//return false;//不提交
}
from1.onchange=function(){}
form1.text.onfocus/onblur=function(){}
from1.submit();
from1.reset();
用于访问浏览器对象,没有规范。其核心是window(窗口)。
alert("输入错误");//提示对话框
confirm("是否关闭");//带"确定"、"取消"按钮的对话框 点击"确认"返回true,点击"取消"返回false。
prompt("请输入一个数字",0);//带输入框的对话框,返回输入的数据。
<button onclick="print()">打印</button>
<button onclick="find(‘abc‘)">查找</button>
<p>abcdefghijklmn</p>
btn.onclick=function(){
var p=prompt("请输入要查找的内容");
find(p);
}
打开窗口
open(打开窗口URL,打开方式,打开窗口的样式,新窗口是否取代浏览器记录中当前加载的页面);打开方式默认值为_blank。
window.open ("http://www.baidu.com","_blank/_self", "width:100px;height:100px;",true/false);//window.可去掉,但在行间就不能去掉。如:
<button onclick="window.open(‘http://www.baidu.com‘)">
var iNew=window.open("about:blank","_blank");//打开一个空白的页面
iNew.document.write("abc");
open("1.rar");//如果不能以窗口方式打开的会运行下载。
关闭窗口 close();
document.body.scrollTop;//滚动条滑动的距离。
document.body.scrollLeft;//火狐、IE不兼容,取值都为0。
document.documentElement.scrollTop;
document.documentElement.scrollLeft;//火狐、IE适用,但谷歌不兼容。
//兼容处理:
var sTop=document.body.scrollTop==0?document.documentElement.scrollTop:document.body.scrollTop;
box[0].scrollHeight;//滚动条可滑动的高度,即元素的可视高,包括padding,不包括margin、border;
box[0].scrollWidth;//滚动条可滑动的宽度,即元素的可视高,包括padding,不包括margin、border;
oDiv.offsetWidth;//div的占位宽,包括padding,border。
oDiv.offsetHeight;
oDiv.offsetTop;//距页面顶部的距离,若父元素定位,则是与父元素的距离。
oDiv.offsetLeft;
oDiv.clientWidth;//div的可视宽,包括padding。
oDiv.clientHeight;
oDiv.clientTop;//div的上边宽border-top。
oDiv.clientLeft;//div的左边宽border-left。
window.onscroll=function(){};
window.onresize=function(){};
document.documentElement.clientHeight;//窗口可视高
标签:子节点 ast 识别 窗口 value 位置 abc orm 取消
原文地址:https://blog.51cto.com/11569511/2417775