js中用tagname和id獲取元素的3種方法


<!DOCTYPE html>
<html lang= "en" >
<head>
<meta charset= "UTF-8" >
<title>3種用tagname和id獲取元素的方法</title>
<style>
body{
     margin: 0;
}
ul{
     margin: 0;
     padding: 0;
     list-style: none;
}
h1{
     margin: 0;
}
</style>
</head>
<body>
<div  class = "box"  id= "box" >
     <h1  class = "box-tit" >分類名稱</h1>
     <ul  class = "box-list"  id= "box-list" >
         <li  class = "box-listI" >
             <input  class = "box-listI-input" >
             <button>保存</button>
             <button>取消</button>
         </li>
         <li  class = "box-listI" >
             <input  class = "box-listI-input" >
             <button>保存</button>
             <button>取消</button>
         </li>
         <li  class = "box-listI" >
             <input  class = "box-listI-input" >
             <button>保存</button>
             <button>取消</button>
         </li>
     </ul>
</div>
<script>
//[1]整體法,先獲取所有的元素,再通過ai+-b的方法來算出需要的元素
var  oList = document.getElementById( 'box-list' );
var  aInput = oList.getElementsByTagName( 'input' );
var  aBtn =oList.getElementsByTagName( 'button' );
for ( var  i = 0; i < aBtn.length; i++){
     aBtn[i].index = i;
}
for ( var  i = 0; i < aInput.length; i++){
     //確定按鈕
     aBtn[2*i].onclick = function(){
         aInput[ this .index/2].disabled =  true ;
     }
     //取消按鈕
     aBtn[2*i+1].onclick = function(){
         aInput[( this .index-1)/2].disabled =  false ;
         aInput[( this .index-1)/2].value =  '' ;
         console.log(1);
     }
}
//[2]數組法,在全局環境下建立空數組,遇到需要循環的結構時,在循環中獲取元素,並放入數組
var  oList = document.getElementById( 'box-list' );
var  aIn = oList.getElementsByTagName( 'li' );
var  aInput = [];
var  aBtnY = [];
var  aBtnX = [];
for ( var  i = 0; i < aIn.length; i++){
     aInput[i] = aIn[i].getElementsByTagName( 'input' )[0];
     aBtnY[i] = aIn[i].getElementsByTagName( 'button' )[0];
     aBtnX[i] = aIn[i].getElementsByTagName( 'button' )[1];
     aBtnY[i].index = aBtnX[i].index = i;
     //確定按鈕
     aBtnY[i].onclick = function(){
         aInput[ this .index].disabled =  true ;
     }
     //取消按鈕
     aBtnX[i].onclick = function(){
         aInput[ this .index].disabled =  false ;
         aInput[ this .index].value =  '' ;
         console.log(2);
     }  
}
//[3]函數法,遇到相同的幾組元素時,只操作一組元素,並用函數傳參來實現所有的效果
var  oList = document.getElementById( 'box-list' );
var  aIn = oList.getElementsByTagName( 'li' );
function fn(i){
     var  oInput  = aIn[i].getElementsByTagName( 'input' )[0];
     var  oBtnY = aIn[i].getElementsByTagName( 'button' )[0];
     var  oBtnX = aIn[i].getElementsByTagName( 'button' )[1];
     //確定按鈕
     oBtnY.onclick = function(){
         oInput.disabled =  true ;
     }
     //取消按鈕
     oBtnX.onclick = function(){
         oInput.disabled =  false ;
         oInput.value =  '' ;
         console.log(3);
     }      
}
for var  i = 0; i < aIn.length; i++){
     fn(i);
}
</script>
</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM