javascript day03

parentNode,獲取元素的父級

<ul>
    <li id="test">hello world</li>
</ul>
<script>
    var test = document.getElementById("test");
    test.onclick=function(){
        console.log(this.parentNode)
    }
</script>

小效果

<ul>
    <li>hello world1 <button class="btn">隱藏</button></li>
    <li>hello world2 <button class="btn">隱藏</button></li>
    <li>hello world3 <button class="btn">隱藏</button></li>
    <li>hello world4 <button class="btn">隱藏</button></li>
</ul>
<script>
    /*1.獲取所有的btn*/
    var btns = document.getElementsByClassName("btn");
    /*2.對btns進行遍歷*/
    for(var i =0;i<btns.length;i++){
        /*3.對每一個btn執(zhí)行點擊事件*/
        btns[i].onclick = function(){
            /*4.把正在執(zhí)行點擊事件的btn隱藏*/
            this.parentNode.style.visibility = "hidden";
        }
    }
</script>

childNodes 所有類型的節(jié)點既有元素節(jié)點,也有文本節(jié)點

<ul id="test">
    hello world
    <li>1</li>
    <li>2</li>
</ul>
<script>
    var test = document.getElementById("test");
    var childs = test.childNodes;
    for(var i =0;i<childs.length;i++){
       if(childs[i].nodeType == 1){
           childs[i].style.background="red";
       }
    }
</script>

children只會讀取元素節(jié)點

<ul id="test">
    hello world
    <li>1</li>
    <li>2</li>
</ul>
<script>
    var test = document.getElementById("test");
    var childs = test.children;
   alert(childs.length)
</script>

firstChild獲取的一個子節(jié)點(不會識別節(jié)點的類型)

<ul id="test">
    hello world
    <li>1</li>
    <li>2</li>
</ul>
<script>
    var test = document.getElementById("test");
    var first = test.firstChild;
    alert(first);
</script>

firstElementChild的兼容處理

<ul id="test">
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<script>
    var test = document.getElementById("test");
    if(test.firstElementChild){
        //ie9+加其他瀏覽器
        test.firstElementChild.style.background="pink"
    }else{
        //ie8
        test.firstChild.style.background="red";
    }
</script>

nextSibling(獲取任意類型的節(jié)點)

<ul id="test">
    <li id="one">1</li>
    <li id="two">2</li>
    <li>3</li>
</ul>
<script>
    var two = document.getElementById("two");
    var sibling =two.previousElementSibling;
    console.log(sibling)
</script>

offsetParent獲取給了定位元素的父級

//css
    <style>
        #parent{
            position: relative;
        }
        #child{
            margin-left: 200px;
            width:100px;
            height:100px;
            left:200px;
            top:100px;
            position: absolute;
            background-color: red;
        }
    </style>
//html
<div id="parent">
    <div id="child">

    </div>
</div>
<script>
    /*offsetParent獲取給了定位元素的父級*/
    var child = document.getElementById("child");
    alert(child.offsetWidth);
    console.log(child.offsetParent)
</script>

改變元素的樣式

//css
    <style>
        #parent{
            position: relative;
        }
        #child{
            margin-left: 200px;
            width:100px;
            height:100px;
            left:200px;
            top:100px;
            position: absolute;
            background-color: red;
        }
    </style>
//html
<div id="parent">
    <div id="child">

    </div>
</div>
<script>
    var child = document.getElementById("child");
    child.setAttribute("style","display:none")
</script>

小效果

<input type="text" id="input" value="hello world"/>
<button id="btn">點擊</button>
<script>
    var input = document.getElementById("input");
    var btn = document.getElementById("btn");
    btn.onclick=function(){
//        input.value="hello world"
        input.removeAttribute("value")
    }
</script>

小效果

//css
<style>
        ul{list-style: none}
        *{margin:0;padding:0}
        .table{
            text-align: center;
            margin-top: 100px;
            margin-left:auto;
            margin-right: auto;
            width:350px;
            border:1px solid #333;
        }
        .tab_wrap{
            border-top: 1px solid #333;
            position: relative;
            height:300px;
        }
        .tab_wrap>div{
            position: absolute;
            height:100%;
            width:100%;
        }
        .tab{
            line-height: 50px;
        }
        .tab>li{
            display: inline-block;
            cursor: pointer;
        }
        input{
            margin-top: 15px;
            width:250px;
            height:40px;
        }
        .code{
            display: none;
        }
        .tab>li:first-child{
            color:orangered;
        }
    </style>
<div class="table">
    <ul class="tab">
        <li class="tab_menu">賬號登錄</li>
        <li class="tab_menu">掃碼登錄</li>
    </ul>
    <div class="tab_wrap">
        <div class="account tab_content">
            <p><input type="text" placeholder="請輸入手機號"/></p>
            <p><input type="password" placeholder="請輸入密碼"/></p>
            <p><input type="submit" placeholder="請輸入密碼"/></p>
        </div>
        <div class="code tab_content">
            ![](images/01.png)
        </div>
    </div>
</div>
<script>
    /*獲取兩個被點擊的li*/
    var tabs = document.getElementsByClassName("tab_menu");
    /*獲取兩個顯示的div*/
    var contents = document.getElementsByClassName("tab_content");
    for(var i=0;i<tabs.length;i++){
        tabs[i].value = i;
        /*給每個li一個點擊事件,讓對應(yīng)的div顯示*/
        tabs[i].onclick=function(){
            /*讓所有的li的字體的顏色為#333*/
            var siblings = document.getElementsByClassName("tab")[0].children;
            for(var k =0;k<siblings.length;k++){
                siblings[k].style.color="#333"
            }
            /*讓正在被點擊的字體的顏色為orangered*/
            this.style.color="orangered";
            /*讓所有的content隱藏*/
            for(var j=0;j<contents.length;j++){
                contents[j].style.display="none"
            }
            /*讓對應(yīng)的顯示就行*/
            contents[this.value].style.display="block";
        }
    }
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 一、JS前言 (1)認(rèn)識JS 也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示),會使用HT...
    凜0_0閱讀 2,807評論 0 8
  • 第1章 系好安全帶,準(zhǔn)備啟航 1.1讓你認(rèn)識JS 1.1.1 JavaScript能做什么?增強頁面動態(tài)效果(...
    張中華閱讀 1,415評論 4 10
  • 認(rèn)識DOM文檔對象模型DOM(Document Object Model)定義訪問和處理HTML文檔的標(biāo)準(zhǔn)方法。D...
    jasmine_jing閱讀 813評論 0 3
  • 有時候無助的像個小孩,突然在人來人往的十字路口走丟了親人,看著川流不息的人群和這個莫大的世界,突然失去了所有的支...
    觸不到的遠(yuǎn)方閱讀 282評論 0 0
  • 最近《致我們單純的小美好》大熱,男女主角也火了,許久未看這種小清新校園劇的我,也擼了一把劇,確實勾起了老夫的少女心...
    陳暖妹閱讀 639評論 0 0