在前后台值的传递的时候我们更多的用的是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是一个封装的对象,要么就是自己框架的方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)