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 相关文章推荐
img标签中onerror用法
Aug 13 Javascript
jQuery实现可收缩展开的级联菜单实例代码
Nov 27 Javascript
jquery1.10给新增元素绑定事件的方法
Mar 06 Javascript
JS实现进入页面时渐变背景色的方法
Feb 25 Javascript
JS验证邮件地址格式方法小结
Dec 01 Javascript
Bootstrap自定义文件上传下载样式
May 26 Javascript
浅谈js的html元素的父节点,子节点
Aug 06 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 jQuery
让IDE识别webpack的别名alias的实现方法
May 06 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
Nov 03 Javascript
vue element-ul实现展开和收起功能的实例代码
Nov 25 Vue.js
浅谈JSON5解决了JSON的两大痛点
Dec 14 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
PHP中cookies使用指南
2007/03/16 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
Vue.js实现分页查询功能
2020/11/15 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
Element中Slider滑块的具体使用
2020/07/29 Javascript
Python易忽视知识点小结
2015/05/25 Python
Python中装饰器学习总结
2018/02/10 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
python实现学生成绩测评系统
2020/06/22 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
营业员演讲稿
2013/12/30 职场文书
禁止高声喧哗的标语
2014/06/11 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
教师三严三实心得体会
2014/10/11 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL
Oracle 区块链表创建过程详解
2021/05/15 Oracle
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL