js DOM基础

为了方便使用,下面的例子中全部都是用ul li 来写的

1、getElementsByTagName("") 获取标签,得到的是类数组,并不是真正意义上的数组

2、getElementsByClassName("") 同上

3、getAttribute("属性");

获取属性,因为属性是存在于标签里,一般需要先获取标签,

document.getElementsByTagName("a")[0]

4、setAttribute("属性",要设置的内容);

element.setAttribute(attributename,attributevalue)

这里的属性一般遇见的有src、href、title、target

5、childNodes 获取的是所有子节点,其中也包括文本节点和元素节点。

奇怪的是它在IE6-8使用是不存在问题,但是在其他浏览器里会有问题,因此

我们会用【nodeType】来判断节点类型,举个例子

var oUl=document.getElementById("ul1");

for(var i=0;i<oUl.childNodes.length;i++){

       if(oUl.childNodes[i].nodeType ==1){

            oUl.childNodes[i].style.background="green"

         }

}

    第一个元素节点

    第二个元素节点

    第三个元素节点

    我们需要知道如果 nodeType ==3,它表示的是文本节点,而文本节点是无法加样式的;

    如果nodeType ==1,则是元素节点,而我们也只要元素节点,所以在循环里加判断,就不会存在兼容问题。

    当然,我们可以使用【children】,它仅仅获取的是元素节点,在高版本浏览器或IE浏览器下都可以使用,所以上述例子中直接把childNode改成children就可以了,也不需要给其加判断,所以建议直接用children。

    6、firstChild    获取的是第一个子节点,这个如果直接使用也存在兼容问题,它适用于IE6--8,所以一般在高版本浏览器下使用的是:firstElementChild。同样的使用时,需要加个判断,还是举例:

    var oUl=document.getElementById("ul1");

    if(oUl.firstElementChild){

            // 适配高版本浏览器

          oUl.firstElementChild.style.background="red"

    }else{

         // IE6-8适用

         oUl.firstChild.style.background="red"

    }

    同理肯定还有lastChild/lastElementChild,用法一样。

    7、parerntNode  获取父节点

     写法为:子元素.parerntNode

    *offsetParent  它也可以获取父节点,它有一定的局限性,因为如果改变了定位的样式,那么获取到的父节点就会不一样,比如父节点去掉定位,那么子元素的父节点就会往上一级去找, 写法还是一样的:子元素.offsetParent。

    8、nextSibling 获取兄弟节点,这个一般在IE下可执行

    为了兼容谷歌,写法为:nextElementSibling;

    var Oli = document.getElementsByTagName("li")

    for(var i=0;i<Oli.length;i++){

         Oli[i].onclick = function(){

             if(this.nextElementSibling){

                // 为了兼容谷歌

              alert(this.nextElementSibling.innerText)

        }else{

            alert(this.nextSibling.innerText)

           }

      }

    }

    9、createElement    创建节点/createTextNode    创建文本内容/createDocumentFragment 文档碎片/insertBefore 在父级元素里的某个位置插入新创建的子元素

    var oli = document.createElement("li"); 创建li标签

    oli.innerText="this is new li" ;  给li标签添加文本内容

    obox.appendChild(oli)

    10、removeChild 移除子节点

    移除子节点肯定得有父节点,所以要先获取父节点,然后获取要删除的每个子节点,最后实现的就是在父节点里删除子节点,下面的例子中要删除的肯定是li,但是我们获取的是每个a,所以还要再获取a的父节点,用parentNode获取到li

    var obox = document.getElementById("box");

    var oa = document.getElementsByTagName("a");

    for(var i=0;i<oa.length;i++){

          oa[i].onclick = function(){

              obox.removeChild(this.parentNode)

          }

    }

      第一个

      delete

      第二个

      delete

      第三个

      delete

    • 第四个 delete
    • 最后编辑于
      ©著作权归作者所有,转载或内容合作请联系作者
      • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
        沈念sama阅读 211,348评论 6 491
      • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
        沈念sama阅读 90,122评论 2 385
      • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
        开封第一讲书人阅读 156,936评论 0 347
      • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
        开封第一讲书人阅读 56,427评论 1 283
      • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
        茶点故事阅读 65,467评论 6 385
      • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
        开封第一讲书人阅读 49,785评论 1 290
      • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
        沈念sama阅读 38,931评论 3 406
      • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
        开封第一讲书人阅读 37,696评论 0 266
      • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
        沈念sama阅读 44,141评论 1 303
      • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
        茶点故事阅读 36,483评论 2 327
      • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
        茶点故事阅读 38,625评论 1 340
      • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
        沈念sama阅读 34,291评论 4 329
      • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
        茶点故事阅读 39,892评论 3 312
      • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
        开封第一讲书人阅读 30,741评论 0 21
      • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
        开封第一讲书人阅读 31,977评论 1 265
      • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
        沈念sama阅读 46,324评论 2 360
      • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
        茶点故事阅读 43,492评论 2 348

      推荐阅读更多精彩内容

      • 1.DOM基础 什么是DOM :document ,节点! 其实说的都是一个东西, CSS时管叫标签, JS时管叫...
        壹点微尘阅读 426评论 0 0
      • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
        凛0_0阅读 2,755评论 0 8
      • DOM DOM内容主要分为四部分: 什么是DOM和节点; 获取节点; 节点操作(3种); 属性操作(3种)。 什么...
        magic_pill阅读 771评论 0 1
      • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
        mo默22阅读 1,250评论 0 5
      • 一段感情到底为什么糟糕, 其实答案显而易见 要不是爱而不得.自己却难放手, 折磨着自己也折磨着别人 . 另一种大概...
        刘亚男滴哒滴阅读 411评论 3 5