JavaScript中幾種常見的獲取元素的方式
阿新 • • 發佈:2019-02-10
目錄
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>