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 Flash插入函数免激活代码
Mar 31 Javascript
jQuery实现form表单reset按钮重置清空表单功能
Dec 18 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
Aug 18 Javascript
提升PHP安全:8个必须修改的PHP默认配置
Nov 17 Javascript
详解angular2封装material2对话框组件
Mar 03 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 jQuery
vue-resource请求实现http登录拦截或者路由拦截的方法
Jul 11 Javascript
JavaScript创建对象方法实例小结
Sep 03 Javascript
JQuery事件委托原理与用法实例分析
May 13 jQuery
JS学习笔记之闭包小案例分析
May 29 Javascript
JS/CSS实现字符串单词首字母大写功能
Sep 03 Javascript
layui表格内容溢出的解决方法
Sep 06 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设计模式 State (状态模式)
2011/06/26 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
Python爬虫模拟登录带验证码网站
2016/01/22 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
Python 保存加载mat格式文件的示例代码
2020/08/04 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
公司财务自我评价分享
2013/12/17 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL