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 相关文章推荐
javascript 贪吃蛇实现代码
Nov 22 Javascript
Javascript 面向对象 继承
May 13 Javascript
无阻塞加载脚本分析[全]
Jan 20 Javascript
模仿百度三维地图的js数据分享
May 12 Javascript
jQuery表单验证插件formValidator(改进版)
Feb 03 Javascript
浅谈关于JavaScript API设计的一些建议和准则
Jun 24 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
Aug 24 Javascript
jquery 表单验证之通过 class验证表单不为空
Nov 02 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
Oct 10 Javascript
Angular模版驱动表单的使用总结
May 05 Javascript
微信小程序实现星级评分和展示
Jul 05 Javascript
微信小程序实现录音功能
Nov 22 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
php 邮件发送问题解决
2014/03/22 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
Python中的各种装饰器详解
2015/04/11 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
python如何求解两数的最大公约数
2018/09/27 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python3 求约数的实例
2019/12/05 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
Java多态性的定义以及类型
2014/09/16 面试题
测绘工程系学生的自我评价
2013/11/30 职场文书
庆六一宣传标语
2014/10/08 职场文书
三好学生事迹材料
2014/12/24 职场文书
酒会邀请函
2015/01/31 职场文书
文案策划岗位职责
2015/02/11 职场文书
关于童年的读书笔记
2015/06/26 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript