码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript的组成部分

时间:2019-07-06 23:23:09      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:子节点   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");

1.节点Node

  • 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。

  • 获取节点
    (1)获取所有节点
    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;
  • 操作节点
    (1) 添加子节点 appendChild
    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:深复制(整个结构都被复制,包括标签里的内容)。

2.表格Table

tab.tBodies[0].rows[0].cells[0];
tab.tHead.rows[0].cells[0];
tab.tFood.rows[0].cells[0];

3.表单From

  • 表单获取元素
    name可以标识一个元素:from1.nameValue.属性。

  • 表单提交/重置事件
    from1.onsubmit/onreset=function(){
       //return true;//提交(默认值)
       //return false;//不提交
    }
  • 表单改变事件
    from1.onchange=function(){}
  • 表单获取/失去焦点事件
    form1.text.onfocus/onblur=function(){}
  • 表单方法
    from1.submit();
    from1.reset();

二、BOM(Browser Object Model):浏览器对象模型

用于访问浏览器对象,没有规范。其核心是window(窗口)。

1.对话框与窗口

  • 对话框
    alert("输入错误");//提示对话框 
    confirm("是否关闭");//带"确定"、"取消"按钮的对话框 点击"确认"返回true,点击"取消"返回false。
    prompt("请输入一个数字",0);//带输入框的对话框,返回输入的数据。
  • print();//打印(快捷键:ctrl+P)
    <button onclick="print()">打印</button>
  • find(str);//查找(快捷键:ctrl+F)//按回车键继续查找下一个
    <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();

  • window.location; //当前窗口的路径(读)
    window.location="http://www.baidu.com";//(写)可利用为刷新

2.相关属性

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;//窗口可视高

Javascript的组成部分

标签:子节点   ast   识别   窗口   value   位置   abc   orm   取消   

原文地址:https://blog.51cto.com/11569511/2417775

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!