表格中的元素
一个表格中有n个input元素,我怎样才能取到这个表格所有input的对象? 问题点数:45、回复次数:12Top
1 楼weidegong(weidegong)回复于 2002-04-10 14:08:41 得分 20
<script language=javascript>
function show(){
var n=document.all.tags("input").length;
var str="";
for(i=0;i<n;i++) str+=document.all.tags("input")[i].name+";";
alert(str);
}
</script>
<input name=input1>
<input name=input22>
<input type=button name=input3 value="show" onclick=show()>Top
2 楼weidegong(weidegong)回复于 2002-04-10 14:10:11 得分 0
表格中?什么意思?Top
3 楼fokker(独孤龙)回复于 2002-04-10 15:41:41 得分 0
<TABLE id=tableA>
<TR>
<TD><INPUT id=text1 name=text1></TD>
<TD><INPUT id=text2 name=text2></TD>
<TD><INPUT id=text3 name=text3></TD></TR></TABLE></P>
我只想取上面的那三个input对象,不要页面上其他的input,怎么办?Top
4 楼seabell(百合心)回复于 2002-04-10 16:09:40 得分 25
<script language=javascript>
function show(){
var n=document.form1.tags("input").length;
var str="";
for(i=0;i<n;i++) str+=document.form1.tags("input")[i].name+";";
alert(str);
}
</script>
<input name=input1>
<input name=input2>
<input type=button name=input3 value="show" onclick=show()>
<form name=form1>
<TABLE id=tableA>
<TR>
<TD><INPUT id=text1 name=text1></TD>
<TD><INPUT id=text2 name=text2></TD>
<TD><INPUT id=text3 name=text3></TD></TR></TABLE></P>
</form>Top
5 楼chinaillboy(浪漫)回复于 2002-04-10 17:06:24 得分 0
following weidegong(weidegong) ,get the object's name:
var str = name;
if(str == "text1" || str == "text2" || str == "text3"){
........
}Top
6 楼fokker(独孤龙)回复于 2002-04-10 17:24:22 得分 0
to seabell(seabell):这样做会把input1、input2和input3也一块取到,我不想要除了包含在tableA里面的所有input。
to chinaillboy(浪漫不起来):我并不知道tableA中的input的名称,text1 2 3只是举个例子。Top
7 楼fokker(独孤龙)回复于 2002-04-10 18:00:54 得分 0
想到一个很笨的办法,谁有更好的啊?
function show(){
var n=document.all.tags("input").length;
var str="";
for(i=0;i<n;i++){
var tmp=document.all.tags("input")[i];
if(tmp.parentElement.parentElement.parentElement.parentElement.id=="tableA")
str+=document.all.tags("input")[i].name+";";
}
alert(str);
}
Top
8 楼seabell(百合心)回复于 2002-04-10 18:25:09 得分 0
fokker(独孤龙),你可能没有试试我改进的方法,在需要的小范围(如table)外圈了<form name=form1>的。这种方式最直接了,在其他范围也同样适用。
你的方法也可以,不过要判断parentElement是否存在
<script language=javascript>
function show(){
var n=document.all.tags("input").length;
var str="";
for(i=0;i<n;i++){
var tmp=document.all.tags("input")[i];
if(tmp.parentElement!=null)//不可少
if(tmp.parentElement.parentElement!=null)//不可少
if(tmp.parentElement.parentElement.parentElement!=null)//不可少
if(tmp.parentElement.parentElement.parentElement.parentElement!=null)//不可少
{
if(tmp.parentElement.parentElement.parentElement.parentElement.id=="tableA")
str+=document.all.tags("input")[i].name+";";
}
}
alert(str);
}
</script>
<input name=input1>
<input name=input2>
<input type=button name=input3 value="show" onclick=show()>
<form name=form1>
<TABLE id=tableA>
<TR>
<TD><INPUT id=text1 name=text1></TD>
<TD><INPUT id=text2 name=text2></TD>
<TD><INPUT id=text3 name=text3></TD></TR></TABLE></P>
</form>Top
9 楼weidegong(weidegong)回复于 2002-04-10 20:17:49 得分 0
全放在form里面是最方便的了Top
10 楼fokker(独孤龙)回复于 2002-04-11 09:29:18 得分 0
to seabell(seabell):我没有仔细看你的代码,你说的对。
但,我的html页面不是我自己写的,而是由一个lotus数据库中的一个表单生成的,它只有一个form,所有的元素都在这个form里面。还有什么办法呢?Top
11 楼weidegong(weidegong)回复于 2002-04-11 09:35:49 得分 0
我没有仔细看你的代码,呵呵,说得好Top
12 楼fokker(独孤龙)回复于 2002-04-11 17:03:44 得分 0
我重新写了一个递归函数来判断一个input是不是指定表格中的元素,不会出错了,速度好像也快一些。可惜不能给自己加分,遗憾。
function fDo(oItem,sId){
var flag = false;
if(oItem.parentElement){
if(oItem.parentElement.tagName=="TABLE")
if(oItem.parentElement.id==sId){
flag=true;
return flag;
}
else{
flag=false
return flag;
}
else
return fDo(oItem.parentElement,sId);
}
return flag;
}Top




