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写的一个DIV 弹出网页对话框
Aug 14 Javascript
FF IE兼容性的修改小结
Sep 02 Javascript
基于Jquery的温度计动画效果
Jun 18 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
Oct 15 Javascript
表单序列化与jq中的serialize使用示例
Feb 21 Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
Apr 07 Javascript
javascript数组遍历的方法实例分析
Sep 13 Javascript
bootstrap下拉列表与输入框组结合的样式调整
Oct 08 Javascript
浅谈Angular2 模块懒加载的方法
Oct 04 Javascript
Vue.directive 自定义指令的问题小结
Mar 04 Javascript
vue中多个倒计时实现代码实例
Mar 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绘图中显示不出图片的原因及解决
2014/03/05 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
五分钟搞懂Vuex实用知识(小结)
2019/08/12 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
Django model序列化为json的方法示例
2018/10/16 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
什么是python的函数体
2020/06/19 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
Python列表推导式实现代码实例
2020/09/09 Python
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
台湾旅游网站:雄狮旅游网
2017/08/16 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
C#笔试题
2015/07/14 面试题
如何提高MySql的安全性
2014/06/19 面试题
回门宴答谢词
2014/01/13 职场文书
农林环境专业求职信
2014/03/13 职场文书
小学开学典礼主持词
2014/03/19 职场文书
《花木兰》教学反思
2014/04/09 职场文书
文明城市创建标语
2014/06/16 职场文书
六查六看心得体会
2014/10/14 职场文书
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
MySQL 数据表操作
2022/05/04 MySQL