网站首页 > 技术文章 正文
在以前做项目编程的时候,还是自己写Demo练习的时候,不管是用JavaScript还是用Jquery给标签元素绑定对象,都习惯使用选择器进行元素标签对象的获取,在最近看项目的过程中发现有人习惯直接使用I标签的ID或者Name直接获取对象,我在看到代码的时候还一下没反应过来,在这里做个记录,避免忘记
使用选择器获取对象并绑定事件
<input type="button" id="javaScript" value="测试01">
<input type="button" id="jquery" value="测试02">
<script type="text/javascript">
$(function(){
/* JqueryId选择器 */
$("#jquery").on("click",function(){
alert("id选择器");
});
});
/* 通过ID获取对象 */
var testBtn = document.getElementById("javaScript");
testBtn.onclick=function(){
alert("js");
};
</script>
我们都知道,id和name两个属性在JS中是很特殊的两个属性,我们很多情况下关于获取对象,绑定事件用得最多的是id。在前后台值的传递的时候我们更多的用的是name。两者都很重要,也有不同,id在页面上需保持唯一性。
当在js代码中如果标签的id名和js中内置的函数或者其他保留字段重名,那么在页面加载渲染的时候,在顶层环境中会自动生成一个与Id名相同的window对象,那么我们在通过id绑定事件的时候也就可以写成这样
jqueryTest.onclick=function(){
alert("id");
};
或者这样
window.jqueryTest.onclick=function(){
alert("id");
};
对于name属性来说,也有这种特性,不过只限于特定的对象,例如form,iframe,applet,embed,object,img等。
当name属性唯一时,以form标签举例
<script type="text/javascript">
$(function(){
$("#btnId").on("click",function(){
alert("触发");
testName.submit();
});
});
</script>
<body>
<form action="" id="testId" name="testName">
<input type="text" id="testInput" name ="userName">
<input id="btnId" type="button" value="提交">
</form>
</body>
在这里,我们不给表单做submit按钮,而是直接用button,点击后一样会触发form表单的submit事件。
当name 不唯一的时候,这里我们以embed标记举例,当name不唯一时,生成是是一个只读的数组,我们可以用for循环或者for each进行遍历
<embed src="#" id="embed01" name="embedTest">
<embed src="#" id="embed02" name="embedTest">
<embed src="#" id="embed03" name="embedTest">
<script type="text/javascript">
for(var i=0;i<embedTest.length;i++){
console.log(embedTest[i].id);
};
</script>
这里控制台日志会输出以下结果
以上就是通过元素id或者name直接取值的方法,当然作为一个非专业前端人员,个人推荐还是使用选择器进行取值,因为直接用name或id,当一个对代码不熟悉的人直接看到这个代码的时候,第一反应就是testName.submit()这种要么testName是一个封装的对象,要么就是自己框架的方法。
猜你喜欢
- 2024-11-08 大厂必问 · 如何防止订单重复? 防止订单重复提交与高并发
- 2024-11-08 使用JS快速读取TXT文件 js怎么读取文件
- 2024-11-08 开发必懂的文件加解密 开发必懂的文件加解密怎么弄
- 2024-11-08 一个巧合,我把文档写进了代码里 一个巧合,我把文档写进了代码里英文
- 2024-11-08 安卓手机如何快速刷完青年大学习 安卓如何快速完成青年大学
- 2024-11-08 DNF:健康系统最简单的修改信息方法
- 2024-11-08 这个传染病各年龄人群都易感,该如何预防?戳→
- 2024-11-08 文字跳动特效表白网页 字幕滚动表白软件
- 2024-11-08 如何访问Web存储 web项目怎么访问本地文件
- 2024-11-08 智能科技时代的事件驱动编程:艺术与算法的完美交融
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-