1. 程式人生 > >JavaScript中幾種常見的獲取元素的方式

JavaScript中幾種常見的獲取元素的方式

目錄

0.碼仙勵志

強者征服今天,懦夫哀嘆昨天,懶漢坐等明天

1.根據id獲取元素

document.getElementById("id屬性的值");

返回值是一個元素物件

案例:點選按鈕彈框

<body>
<input type="button" value="彈框" id="btn">
<script>
    //根據id屬性的值從文件中獲取這個元素
    var btnobj = document.getElementById("btn");
   //為當前的這個按鈕元素(物件),註冊點選事件,新增事件處理函式(匿名函式)
    btnobj.onclick = function () {
        //響應做的事情
        alert("碼仙");
    };
</script>
</body>

2.根據標籤名字獲取元素

document.getElementsByTagName("標籤的名字");

返回值是一個偽陣列

案例:點選按鈕改變多個p標籤的文字內容

<body>
<input type="button" value="改變" id="btn">
<div id="dv">
    <p>哈哈,我又變帥了</p>
    <p>哈哈,我又變帥了</p>
    <p>哈哈,我又變帥了</p>
    <p>哈哈,我又變帥了</p>
    <p>哈哈,我又變帥了</p>
</div>
<script>
    //根據id獲取按鈕,註冊點選事件,新增事件處理函式
    document.getElementById("btn").onclick = function () {
        //根據標籤名字獲取標籤
        var pObjs = document.getElementsByTagName("p");
        //var pObjs=document.getElementById("dv1").getElementsByTagName("p");
        //迴圈遍歷這個陣列
        for (var i = 0; i < pObjs.length; i++) {
            //每個p標籤,設定文字
            pObjs[i].innerText = "我們都是p";
        }
    };
</script>
</body>

3.根據name屬性的值獲取元素

document.getElementsByName("name屬性的值");

返回值是一個偽陣列

案例:案例:點選按鈕,改變所有name屬性值為name1的文字框中的value屬性值

<body>
<input type="button" value="顯示效果" id="btn"/><br/>
<input type="text" value="您好" name="name1"/><br/>
<input type="text" value="您好" name="name2"/><br/>
<input type="text" value="您好" name="name1"/><br/>
<input type="text" value="您好" name="name3"/><br/>
<input type="text" value="您好" name="name1"/><br/>
<input type="text" value="您好" name="name1"/><br/>
<script>
    //點選按鈕,改變所有name屬性值為name1的文字框中的value屬性值
    document.getElementById("btn").onclick = function () {
        //通過name屬性值獲取元素-------表單的標籤
        var inputs = document.getElementsByName("name1");
        for (var i = 0; i < inputs.length; i++) {
            inputs[i].value = "我很好";
        }
    };
</script>
</body>

 

4.根據類樣式的名字獲取元素 

document.getElementsByClassName("類樣式的名字");

返回值是一個偽陣列

案例:修改所有文字框的值

<body>
<input type="button" value="修改文字框的值" id="btn"/><br/>
<input type="text" value="" class="text"/><br/>
<input type="text" value="" class="text"/><br/>
<input type="text" value="" class="text"/>
<script>
    //根據id獲取按鈕,為按鈕註冊點選事件,新增事件處理函式
    document.getElementById("btn").onclick = function () {
        //獲取所有的文字框
        //根據類樣式的名字獲取元素
        var inputs = document.getElementsByClassName("text");
        for (var i = 0; i < inputs.length; i++) {
            inputs[i].value = "碼仙";
        }
    };
</script>
</body>

5.根據選擇器獲取元素 

1.document.querySelector("選擇器");

返回值是一個元素物件

案例:點選按鈕彈框

<body>
<input type="button" value="顯示效果1" id="btn"/>
<input type="button" value="顯示效果2" class="btn"/>
<script>
    //點選按鈕彈出對話方塊
    //根據選擇器的方式獲取元素
    var btnObj1 = document.querySelector("#btn");
    btnObj1.onclick = function () {
        alert("我變帥了");
    };
    var btnObj2 = document.querySelector(".btn");
    btnObj2.onclick = function () {
        alert("哈哈,我又變帥了");
    };
</script>
</body>

2.document.querySelectorAll("選擇器"); 

返回值是一個偽陣列

案例:修改所有文字框的值

<body>
<input type="button" value="修改文字框的值" id="btn"/><br/>
<input type="text" value="" class="text"/><br/>
<input type="text" value="" class="text"/><br/>
<input type="text" value="" class="text"/>
<script>
    document.getElementById("btn").onclick = function () {
        //根據選擇器的方式獲取元素
        var inputs = document.querySelectorAll(".text");
        for (var i = 0; i < inputs.length; i++) {
            inputs[i].value = "碼仙";
        }
    };
</script>
</body>