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 while语句和do while语句的区别分析
Dec 08 Javascript
JS中FRAME的操作问题实例分析
Oct 21 Javascript
web前端开发JQuery常用实例代码片段(50个)
Aug 28 Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 Javascript
js提交form表单,并传递参数的实现方法
May 25 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
Jun 13 Javascript
使用React实现轮播效果组件示例代码
Sep 05 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
Dec 23 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
Aug 25 Javascript
微信小程序实现工作时间段选择
Feb 15 Javascript
vue多个元素的样式选择器问题
Nov 29 Javascript
解决vue页面渲染但dom没渲染的操作
Jul 27 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新手NOTICE错误常见解决方法
2011/12/07 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
解析js如何获取css样式
2016/12/11 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
Python中使用ElementTree解析XML示例
2015/06/02 Python
Python下Fabric的简单部署方法
2015/07/14 Python
浅析Python的Django框架中的Memcached
2015/07/23 Python
在django模板中实现超链接配置
2019/08/21 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
python小技巧——将变量保存在本地及读取
2020/11/13 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
P/Invoke是什么
2015/07/31 面试题
酒店led欢迎词
2014/01/09 职场文书
幼师求职自荐信范文
2014/01/26 职场文书
体检通知范文
2015/04/21 职场文书
开学随笔
2015/08/15 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书