最近做模具标套管理时,需要手动配置列的属性数目,导致在jsp页面上需要通过标签的name属性来获得一个数组标签对象,从而做些业务上的判断,公司经常用的prototype.js,随想在js上添加一个document.getElementsByName()的简写方式,类似$()。
//此代码放入prototype.js中
function $S() {
var results = [], element;
for (var i = 0; i < arguments.length; i++) { // 可以传入多个参数
element = arguments[i];
if (typeof element == 'string') // 如果参数的类型是字符串
element = document.getElementsByName(element);
results.push(Element.extend(element)); // 将得到的对象加入results数组
}
// 如果只返回一个对象,直接返回该对象,如果返回了多个对象,则返回包含所有这些对象的数组
return results.length < 2 ? results[0] : results;
}
测试如下:
<html>
<script src="D:/test/prototype.js" type="text/javascript"></script>
<SCRIPT language="JavaScript">
function oncl(){
var e = $S('abc','abec');
for(i=0;i<e.length;i++){
for(j=0;j<e[i].length;j++)
alert(e[i][j].value);
} //多个参数
var d = $S('abc');
for(i=0;i<d.length;i++){
alert(d[i].value);
} //单个参数
}
</SCRIPT>
<body>
<form method="post" name="info">
<input type="text" name="abc" id="abc1" value="11" />
<input type="text" name="abc" id="abc2" value="12" />
<input type="text" name="abc" id="abc2" value="13" />
<input type="text" name="abc" id="abc2" value="14" />
<input type="text" name="abc" id="abc2" value="15" />
<input type="text" name="abec" id="abc2" value="105" />
<input type="text" name="abec" id="abc2" value="150" />
<input type="text" name="abec" id="abc2" value="1150" />
<input type="text" name="abec" id="abc2" value="125" />
<input type="text" name="abec" id="abc2" value="115" />
<input type="text" name="abec" id="abc2" value="1855" />
<input type="button" value="sub" onClick="oncl()" />
</form>
</body>
</html>
分享到:
相关推荐
^) 但是对于document.getElementsByName 与document.getElementById 这个两个方法,IE中是并没有严格区分 ID 与 Name 的,比如: [removed] function useGetElementsByNameWithId(id) { var eles = d
详细介绍并对比了document.getElementsByName()和document.getElementByNId()的用法,并进行了深入的比较,还有例子加以讲解说明。
代码如下:(wuhen注:document.all是ie特有的属性,不是万维网标准) 当页面上的控件同名且多个的时候,你首先做的是什么?判断长度?的确,从程序的严密角度出发,我们是需要判断长度,而且有长度和没长度是两种引用方法....
innerHTML 真的一个麻烦的东西。IE 和 firefox 对dom 处理的方式不是很一样。IE 对动态加载的很多dom 不支持动态更新。
HTML DOM 定义了多种查找元素的方法,除了 getElementById() 之外,还有 getElementsByName() 和 getElementsByTagName()。
document.getElementsByName(‘someName’) 返回一个节点列表(数组) 注意:在IE下有些节点是没有name 属性的,就是用document.getElementsByName获取不到的。只有下面的tag有name属性: A, APPLET, attribute, ...
JavaScript权威指南 犀牛书 Chapter 1. Introduction to JavaScript Section 1.1. JavaScript Myths Section 1.2. Versions of JavaScript Section 1.3. Client-Side JavaScript Section 1.4. JavaScript ...
var Radio=document .getElementsByName ("rdoSelect"); for (var j=0;j<Radio .length ;j++) { if (Radio[j].checked) { document .getElementById ("USRNUM").value=Radio [j].value; } } }function ...
javascript的IE和Firefox兼容性汇编 1. document.form.item 问题 (1)现有问题: 现有代码中存在许多 document....又如:document.getElementsByName("inputName")(1) 改为 document.getElementsByName("inputName")[1]
语法document.getElementsByName(name) 该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性。 另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同...
thei var o = this.document.getElementsByName('radioGroup'); alert('1'); <br> for(var i=0;i<o.length;i++) { alert(o[i].checked); } return false;
Document.all[]是文档中所有标签组成的一个数组变量,包括了文档对象中所有元素
document.getElementsByName得到的是标签的数组 document.getElementId得到的是某一个标签 <form name=”form_write”> <input name=”content” type=”text”> 然而可以用很浅显的方式得到如: var fn...
var userName=document.getElementsByName("username")[0].value; var username=document.getElementById("username").value; 27.用JS代码清空所有文本框的值,用JS代码表示(3分) var inputs = document....
在前端中我们经常需要数据的排序,首先写引入我写好的js $(function($) { $('#sclazzId').val($('#voId').val()); document.getElementsByName('nameup')[0].style.display = none; document.getElementsByName...
后面还有很多很多代码…… ...document.getElementsByName("r1"); document.getElementById(id); • 定时 timer=setInterval(‘scrollwindow()‘,delay); clearInterval(timer); 后面还有很多很多……
低版本IE数组和HTMLCollection元素集合不兼容forEach循环遍历的...var list= document.getElementsByName("name"); for (var i = 0; i < list.length; i++) { console.log(list[i].id); //second console output }