JS-NO.6

DOM中元素獲取的方式

  • id獲蕊拧:var oDiv=document.getElementById('div1'); 注意性含,只能用document;
  • class獲缺岂伞:document.getElementsByClassName('haha'); 可以限定范圍的獲取元素
  • tagName:可以限定范圍的獲取元素
  • querySelect
    • tag
    • '#'id
    • .class
  • querySelectAll; 注意睛驳,querySelectAll獲取到的是一組元素,即使是頁面中唯一的id凭峡,也得加[];

節(jié)點

|nodeType |nodeName | nodeValue|
---|---
文本節(jié)點 | 3 | "#text" | 文本內(nèi)容
元素節(jié)點 | 1|大寫的標(biāo)簽名| null
注釋節(jié)點 | 8| #comment |注釋內(nèi)容
document節(jié)點 | 9|#document| null

節(jié)點關(guān)系

  • children 子元素
    • 一般情況兼容,但是在IE7/8下决记,如果有注釋的話想罕,拿到的是不準(zhǔn)確的;
  • childNodes 拿到所有的子節(jié)點
  • parentNode 父元素霉涨; 拿的是結(jié)構(gòu)上的父級;
  • previousSibling 上一個哥哥節(jié)點
  • nextSibling 下一個弟弟節(jié)點

久久乘法表 + 擴展

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>圓夢源:勿忘初心惭适,方得始終</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        ul{
            padding:30px;
        }
        ul li{
            height: 50px;
            line-height: 50px;
            font-size: 30px;
        }
        .bg0{
            background: pink;
        }
        .bg1{
            background: lightcyan;
        }
        .bg2{
            background: lightgoldenrodyellow;
        }
        .change{
            background: purple;
            color: #ffffff;
        }
        ul li span{
            display: inline-block;
            width: 120px;
        }
    </style>
</head>
<body>
<ul></ul>
<script>
    (function () {
        var oUl=document.getElementsByTagName('ul')[0];
        var aLi=oUl.getElementsByTagName('li');
        var str='';
        var oldBg=null; //現(xiàn)在沒有笙瑟,以后會有
        for(var i=1; i<=9; i++){
            str+='<li>'
            for(j=1; j<=i; j++){
                str+='<span>'+(j+'*'+i+'='+j*i)+'</span>'
            }
            str+='</li>'
        }
        oUl.innerHTML=str;

        //隔行換色,最簡單的方法癞志,就是%的思想往枷;
        for(var i=0; i<aLi.length; i++){
            aLi[i].className='bg'+i%3;
            //自定義屬性思想:所有你將來要用到的數(shù)值,不知道存哪里凄杯,都可以存在元素的自定義屬性上错洁;
            /*aLi[i].oldBg='bg'+i%3;//當(dāng)我們換完顏色的時候,就把每個li自身的顏色戒突,存在自己的自定義屬性上屯碴;
             aLi[i].onmouseover=function () {
             this.className='change';
             };
             aLi[i].onmouseout=function () {
             //鼠標(biāo)移出的時候,就恢復(fù)以前的嚴(yán)格膊存,以前的顏色在標(biāo)簽的自定義屬性oldBg上存的导而;
             this.className=this.oldBg;
             };*/
            //思路2:利用變量存值
            aLi[i].onmouseover=function () {
                oldBg=this.className;
                this.className='change';
            };
            aLi[i].onmouseout=function () {
                this.className=oldBg;
            }
        }

    })();
</script>
</body>
</html>

getChildren

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>圓夢源:勿忘初心,方得始終</title>
</head>
<body>
<!--為什么要封裝隔崎?要封裝他干什么今艺?目的:1)為了獲取當(dāng)前容器下,所有的子元素 2)對子元素再做一個過濾-->
<div>
    <p></p>
    <p></p>
    <p></p>
    <span></span><span></span>
</div>
<script>
    var oDiv=document.getElementsByTagName('div')[0];
    var aP=getChildren(oDiv,'p');
    var aSpan=getChildren(oDiv,'span');
    var aChild=getChildren(oDiv);
    function getChildren(parent,tagName) {
        //1:拿到當(dāng)前容器下爵卒,所有的子節(jié)點
        var aChilds=parent.childNodes;
        //2:建立空數(shù)組虚缎,逐個遍歷每個節(jié)點進行判斷
        var ary=[];
        for(var i=0; i<aChilds.length; i++){
            var cur=aChilds[i];
            if(cur.nodeType===1){
                /*if(typeof tagName==='undefined'){//說明沒傳第二個參數(shù),那我們獲取的就是所有子節(jié)點
                    ary.push(cur)
                }else{//傳了第二個參數(shù)钓株,需要比對標(biāo)簽名后再放入數(shù)組实牡;
                    if(cur.tagName.toLowerCase()===tagName.toLowerCase()){
                        ary.push(cur);
                    }
                }*/
                tagName?cur.tagName.toLowerCase()===tagName.toLowerCase()&&ary.push(cur):ary.push(cur);
            }
        }
        return ary;
    }
</script>
</body>
</html>

previouseSbling

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>圓夢源:勿忘初心,方得始終</title>
</head>
<body>
<div class="wrap"><div>第1個div</div>
    111111
    22222
    33333
    <div>第2個div</div>
    <div>第3個div</div>
    <div>第4個div</div>
    <div>第5個div</div>
</div>
<script>
    var oDiv=document.getElementsByTagName('div')[0];
    var aDiv=oDiv.getElementsByTagName('div');
    //目的:獲取當(dāng)前元素的上一個哥哥元素轴合;
    /*
    * 目的:獲取當(dāng)前元素的上一個哥哥元素铲掐;
    * 參數(shù):當(dāng)前元素
    * 返回值:當(dāng)前元素的上一個哥哥元素;
    * */
    /**
     * 功能:求當(dāng)前元素的上一個哥哥元素
     * @param curEle
     * @returns preEle
     */
    function prev(curEle){
        //如果高級瀏覽器支持的話值桩,直接使用高級瀏覽器提供的previousElementSibling
        if(curEle.previousElementSibling){
            return curEle.previousElementSibling;
        }
        //證明瀏覽器不支持 previousElementSibling
        var prev=curEle.previousSibling;
        //循環(huán)的條件:上一個節(jié)點摆霉,必須是個節(jié)點,并且不是元素節(jié)點
        while(prev && prev.nodeType !==1){
            prev=prev.previousSibling;
        }
        return prev;
    }

</script>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市携栋,隨后出現(xiàn)的幾起案子搭盾,更是在濱河造成了極大的恐慌咱娶,老刑警劉巖急波,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異送矩,居然都是意外死亡向挖,警方通過查閱死者的電腦和手機蝌以,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來何之,“玉大人跟畅,你說我怎么就攤上這事∪芡疲” “怎么了徊件?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蒜危。 經(jīng)常有香客問我虱痕,道長,這世上最難降的妖魔是什么辐赞? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任部翘,我火速辦了婚禮,結(jié)果婚禮上响委,老公的妹妹穿的比我還像新娘略就。我一直安慰自己,他們只是感情好晃酒,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布表牢。 她就那樣靜靜地躺著,像睡著了一般贝次。 火紅的嫁衣襯著肌膚如雪崔兴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天蛔翅,我揣著相機與錄音敲茄,去河邊找鬼。 笑死山析,一個胖子當(dāng)著我的面吹牛堰燎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播笋轨,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼秆剪,長吁一口氣:“原來是場噩夢啊……” “哼赊淑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起仅讽,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤陶缺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后洁灵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饱岸,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年徽千,在試婚紗的時候發(fā)現(xiàn)自己被綠了苫费。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡双抽,死狀恐怖百框,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情荠诬,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布位仁,位于F島的核電站柑贞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏聂抢。R本人自食惡果不足惜钧嘶,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望琳疏。 院中可真熱鬧有决,春花似錦、人聲如沸空盼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揽趾。三九已至台汇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間篱瞎,已是汗流浹背苟呐。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留俐筋,地道東北人牵素。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像澄者,于是被迫代替她去往敵國和親笆呆。 傳聞我的和親對象是個殘疾皇子请琳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 原文 鏈接 關(guān)注公眾號獲取更多資訊 一、基本類型介紹 1.1 Node類型 DOM1級定義了一個Node接口腰奋,該接...
    程序員poetry閱讀 3,939評論 7 34
  • 本章內(nèi)容 理解包含不同層次節(jié)點的 DOM 使用不同的節(jié)點類型 克服瀏覽器兼容性問題及各種陷阱 DOM 是針對 HT...
    悶油瓶小張閱讀 644評論 0 1
  • 語法基礎(chǔ) 類型轉(zhuǎn)換 1,parseInt(),parseFloat(),Number()要傳參单起,toString(...
    ishgy閱讀 493評論 0 0
  • DOM DOM內(nèi)容主要分為四部分: 什么是DOM和節(jié)點; 獲取節(jié)點劣坊; 節(jié)點操作(3種)嘀倒; 屬性操作(3種)。 什么...
    magic_pill閱讀 781評論 0 1
  • 公司:寧波大發(fā)化纖有限公司 姓名:馮玉停 期數(shù):六項精進224期感謝二組學(xué)員局冰,234期感謝三組志工 [日精進打卡第...
    塵埃wyzh閱讀 57評論 0 0