js中利用tagname和id获取元素的方法


Posted in Javascript onJanuary 03, 2016

本文分享了js中利用tagname和id获取元素的3种方法,供大家参考,具体内容如下

方法一:整体法,先获取所有的元素,再通过ai+-b的方法来算出需要的元素

方法二:数组法,在全局环境下建立空数组,遇到需要循环的结构时,在循环中获取元素,并放入数组

方法三:函数法,遇到相同的几组元素时,只操作一组元素,并用函数传参来实现所有的效果

具体代码如下

<!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>

希望本文所述对大家学习掌握js获取元素的方法有所帮助。

Javascript 相关文章推荐
JS backgroundImage控制
May 19 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
Jul 10 Javascript
解析js原生方法创建表格效率测试
Jul 08 Javascript
jquery的attr方法禁用表单元素禁用输入内容
Jun 23 Javascript
jquery 取子节点及当前节点属性值
Jul 25 Javascript
jQuery对象与DOM对象之间的相互转换
Mar 03 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
Sep 18 Javascript
微信小程序 数据交互与渲染实例详解
Jan 21 Javascript
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
vue+iview写个弹框的示例代码
Dec 05 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
Dec 04 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
Aug 31 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
Jan 03 #Javascript
基于javascript实现简单计算器功能
Jan 03 #Javascript
详解Javascript事件驱动编程
Jan 03 #Javascript
基于javascript实现仿百度输入框自动匹配功能
Jan 03 #Javascript
js实现搜索框关键字智能匹配代码
Mar 26 #Javascript
javascript合并表格单元格实例代码
Jan 03 #Javascript
JS Array.slice 截取数组的实现方法
Jan 02 #Javascript
You might like
PHP 多进程 解决难题
2009/06/22 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
Javascript模板技术
2007/04/27 Javascript
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
python如何统计序列中元素
2020/07/31 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
自荐信需注意事项
2014/01/25 职场文书
小学生安全保证书
2014/02/01 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
员工试用期自我评价
2014/09/18 职场文书
功夫熊猫观后感
2015/06/10 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
如何用python清洗文件中的数据
2021/06/18 Python
Java 在线考试云平台的实现
2021/11/23 Java/Android
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL