继续问:flyskytoday(光风(每天进步一点)) ttyp(愿赌服输) 等高手!

fzdcn 2004-11-08 08:41:39
原来的问题:
如何一次(通用函数)取出页面上的<select>的所有名称(名称不固定,个数也不定)
即页面上存在<select name=name1></select>
<select name=name2></select>
<select name=name3></select>
<select name=name4></select>

想取出所有的select的名字即:name1、name2、name3、name4等等

用flyskytoday(光风(每天进步一点)) 提供如下方法可以取出所有的select的name没有问题
<script>
var sn=document.getElementsByTagName("select");
for(var i=0;i<sn.length;i++)
alert(sn[i].name)
</script>

但是对它进行设置属性时就报错 方法如下所示:

<script language=JavaScript>
function hidsel()
{
var s=document.getElementsByTagName("select");
for(var i =0 ;i<s.length;i++)
{
document.form1.s[i].name.style.visibility="hidden"
//alert(s[i].name)
}
}
</script>
其中form1没有错误.就是想当鼠标移到菜单上时隐藏select,否则它总是在上层.

当触发hidsel总是出现如下错误:
document.form1.s为空或不是对象

先谢谢各位,我该如何解决.
...全文
122 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
风斧 2004-11-09
  • 打赏
  • 举报
回复
呵呵,抢在认赌服输的前面,完全是为了回报各位大虾。
flyskytoday 2004-11-09
  • 打赏
  • 举报
回复
再补充一点,如果你要是只隐藏某一个地话可以传入参数

<select name=name1 onmousemove="hidsel(0)"></select>
<select name=name2 onmousemove="hidsel(1)"></select>
<select name=name3 onmousemove="hidsel(2)"></select>
<select name=name4 onmousemove="hidsel(3)"></select>

<script language=JavaScript>
var sn=document.getElementsByTagName("select");
for(var i=0;i<sn.length;i++)
alert(sn[i].name);
function hidsel(n)
{
sn[n].style.visibility="hidden"
}
</script>
flyskytoday 2004-11-09
  • 打赏
  • 举报
回复
早上才来:)
也可用display属性
display和visibility不同地是,display隐藏后不占空间,而visibility隐藏后以前占地位置还留着,各有用处

function hidsel()
{
for(var i =0 ;i<sn.length;i++)
{
sn[i].style.display="none"
}
}
ttyp 2004-11-08
  • 打赏
  • 举报
回复
var s=document.getElementsByTagName("select");
后s已经是所有你找到的元素集合了,所以直接用
s[i]就能访问这个对象了

s[i].style.visibility="hidden";

s[i].name只是s[i]的一个属性
风斧 2004-11-08
  • 打赏
  • 举报
回复
经测试,第一种写法也是正确的。
风斧 2004-11-08
  • 打赏
  • 举报
回复
var sn=document.getElementsByTagName("select");
for(var i=0;i<sn.length;i++)
{
vComm="document.form1."+sn[i].name+".style.visibility='hidden'";
alert(vComm);
eval(vComm);
}
这是经过测试的版本


}
风斧 2004-11-08
  • 打赏
  • 举报
回复
for(var i =0 ;i<s.length;i++)
{
document.form1.s[i].name.style.visibility="hidden"
//alert(s[i].name)
}
改为下面试试:
for(var i =0 ;i<s.length;i++)
{
s[i].style.visibility="hidden"
//alert(s[i].name)
}
不应定有效。
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2004-11-08 08:41
社区公告
暂无公告