day05DOM

DOM的属性和方法
特点:凡是好用的都是不兼容的

1.DOM的定义

“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、样式和结构。”
HTML Dom是关于如何增,删,改,查 HTML 元素的标准。

2.DOM节点

2.1节点childNodes,parentNode,offsetParent
childNodes  //所有类型的子节点  获取的都是亲儿子
children //只获取元素节点  亲儿子
parentNode  //获取元素的父节点,亲生父亲
//HTML
<ul id="test">
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
//JS
var test = document.getElementById("test");
alert(test.childNodes.length);  //chrome下结果为7,IE9以下结果为3
//在chrome下将空的文本节点,也算在内容
nodeType  //节点的类型
1.为元素节点
2.为文本节点
3.为属性节点
var test = document.getElementById("test");
var childs =test.childNodes;
for(key in childs){
   if(childs[key].nodeType==1){
        childs[key].style.background="red";
    }
}
//parentNode
//HTML
/*点击a,对应的li隐藏*/
<ul>
    <li>苹果<a href="#">隐藏</a></li>
    <li>梨子<a href="#">隐藏</a></li>
    <li>香蕉<a href="#">隐藏</a></li>
    <li>菠萝<a href="#">隐藏</a></li>
</ul>
//JS
var aTags = document.getElementsByTagName("a");
for(var i =0;i<aTags.length;i++){
      aTags[i].onclick=function () {
          this.parentNode.style.display="none";
          return false;
      }
}
offsetParent  //获取给了定位元素的父级
offsetLeft      //返回元素的水平偏移位置。
offsetTop      //返回元素的垂直偏移位置。
offsetWidth  //返回元素的宽度
offsetHeight //返回元素的高度
2.2节点childNodes,parentNode,offsetParent
//可用document.all解决浏览器兼容性问题
if(document.all){
    //IE下
}else{
    //其他浏览器下
}
  • 首尾子节点
    • 有兼容问题
firstChild  //包含所有类型的节点
firstElementChild  //IE9以下不兼容
lastChild  //所有类型的节点
lastElementChild  //IE9以下不支持
fistElementChild.png
  • 兄弟节点
    • 有兼容问题
nextSibling
nextElementSibling  //IE9以下不支持
previousSibling
previousElementSibling  //IE9以下不支持
<ul id="test">
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<script>
    var test = document.getElementById("test");
    if(document.all){
        test.firstChild.style.background="pink"
    }else{
        test.firstElementChild.style.background="pink"
    }
</script>

3.操作元素的属性

oDiv.style.display = "none";
oDiv.style["display"]="none";
oDiv.setAttribute("style","display:none");
<input type="text" id="input"/>
<button id="btn">改变</button>
<script>
    var input = document.getElementById("input");
    var btn = document.getElementById("btn");
    btn.onclick=function () {
        //input.value="hello world"
        input.setAttribute("value","hello world")
    }
</script>

3.1获取,设置,删除

getAttribute();
setAttribute();
removeAttribute();

4.用className选取元素

function getByClass(oParent,aclassName) {
        var result=[];
        var Eles = oParent.getElementsByTagName("*");
        for(var i =0;i<Eles.length;i++){
            if(Eles[i].className==aclassName){
                result.push(Eles[i]);
            }
        }
        return result;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,798评论 0 8
  • 个人博客:https://yeaseonzhang.github.io 花了半个多月的时间,终于又把“JS红宝书”...
    Yeaseon阅读 11,582评论 9 52
  • 本章内容 理解包含不同层次节点的 DOM 使用不同的节点类型 克服浏览器兼容性问题及各种陷阱 DOM 是针对 HT...
    闷油瓶小张阅读 659评论 0 1
  • 又是新的一个月,大家儿童节快乐啊,今天写妈妈给我的新素材,蒸鳗鱼,应该来说是腌制过的,大概来说就是用盐和料酒以及姜...
    火星民政局阅读 100评论 0 0
  • 林徽因,说起她,大多人都是一脸 嫌恶:她啊,不就是一绿茶婊吗?再问下去,想到的就是她与“三个男人”的爱情、她的颜、...
    瑾檀yuying阅读 5,088评论 102 81