请看下面一段js代码
[code="java"]
var count="0";
if(document.getElementById("typevalue")!=null)
{
var obj1=document.all("typevalue");
count=obj1.length
for(var i=0;i<obj1.length;i++){
if(i==0)
{
types=obj1[i].value;
}else{
types=types+","+obj1[i].value;
}
}
}
[/code]
问题出在count=obj1.length上,如果id为typevalue的html标签只有一个时,obj1.length为undefined,事实上是这样的吗?还是我的代码有问题。
[b]问题补充:[/b]
请看下面一段js代码
var count="0"; if(document.getElementById("typevalue")!=null) { var obj1=document.all("typevalue"); count=obj1.length for(var i=0;i<obj1.length;i++){ if(i==0) { types=obj1[i].value; }else{ types=types+","+obj1[i].value; } } }
问题出在count=obj1.length上,如果name为typevalue的html标签只有一个时,obj1.length为undefined,事实上是这样的吗?还是我的代码有问题。
注:我写错了是name重复,不是id重复,我要取重复的name为typevalue的个数。
[b]问题补充:[/b]
请看下面一段js代码
var count="0"; if(document.getElementById("typevalue")!=null) { var obj1=document.all("typevalue"); count=obj1.length for(var i=0;i<obj1.length;i++){ if(i==0) { types=obj1[i].value; }else{ types=types+","+obj1[i].value; } } }
问题出在count=obj1.length上,如果id为typevalue的html标签只有一个时,obj1.length为undefined,事实上是这样的吗?还是我的代码有问题。
问题补充:
请看下面一段js代码
<pre name="code" class="java">
var count="0";
if(document.getElementById("typevalue")!=null)
{
var obj1=document.all("typevalue");
count=obj1.length
for(var i=0;i&lt;obj1.length;i++){
if(i==0)
{
types=obj1[i].value;
}else{
types=types+","+obj1[i].value;
}
}
}
</pre>
问题出在count=obj1.length上,如果name为typevalue的html标签只有一个时,obj1.length为undefined,事实上是这样的吗?还是我的代码有问题。
注:我写错了是name重复,不是id重复,我要取重复的name为typevalue的个数。document.getElementsByName("typevalue")好像没有取name相同的标签的个数的方法吧
[b]问题补充:[/b]
我是判断obj1.length是否为undefined的,如果是undefined,我就确定只有一个name为typevalue的标签,count直接赋1.
另外document.getElementsByName("typevalue"); 好像没有取标签个数的方法吧,而且document.getElementsByName("typevalue")等价与document.all.typevalue,是这样吧
document.getElementsByName("typevalue").length 就可以该标签的个数。
document.all不是很标准,而且有些浏览器是不支持的,而document.getElementsByName("typevalue")是标准的dom形式的访问,大多数游览器都支持的
首先你这种方法用的就是不合理,在一个网页中,id应该是唯一,但是name可以重名。你可以用。然后var obj1=document.all("typevalue"); 这一句可以写成
var obj1=document.getElementsByName("typevalue");
那就用var obj1=document.getElementsByName("typevalue"); 肯定正确,如果只有一个标签时,obj1.length为1
var count=0;
if(document.getElementsByName("typevalue")!=null)
{
var obj1=document.getElementsByName("typevalue");
count=obj1.length;
var types="";
for(var i=0;i<obj1.length;i++){
if(i==0)
{
types=obj1[i].value;
}else{
types=types+","+obj1[i].value;
}
}
}
我帮你改了一下,你试试
我是判断obj1.length是否为undefined的,如果是undefined,我就确定只有一个name为typevalue的标签,count直接赋1
这样写有问题,如果根本就没有typevalue这个标签的话,也是undefined