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 相关文章推荐
function, new function, new Function之间的区别
Mar 08 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
Dec 05 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
Dec 10 Javascript
jQuery实现带动画效果的多级下拉菜单代码
Sep 08 Javascript
Bootstrap CSS布局之图像
Dec 17 Javascript
vue省市区三联动下拉选择组件的实现
Apr 28 Javascript
详解vue-router 2.0 常用基础知识点之router-link
May 10 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
Sep 06 Javascript
vuejs前后端数据交互之从后端请求数据的实例
Aug 11 Javascript
如何在Angular应用中创建包含组件方法示例
Mar 23 Javascript
详解vue实现坐标拾取器功能示例
Nov 18 Vue.js
信息页文内画中画广告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开发框架的对比
2013/07/05 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
PHP使用redis位图bitMap 实现签到功能
2019/10/08 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
vue Element左侧无限级菜单实现
2020/06/10 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
python定时器使用示例分享
2014/02/16 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
Python如何解除一个装饰器
2020/08/07 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
函授毕业生的自我鉴定
2013/11/26 职场文书
团员个人年度总结
2015/02/26 职场文书
课题研究阶段性总结
2015/08/13 职场文书
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang