var drp2 = document.getElementById(" <%=hylb_name.ClientID%> "); alert(drp2) //看看这里,你的drp2 取的有问题 没什么问题吧,我看过了,有值啊
看你对象取到了没有,是不是null 参考10楼代码
var s = document.getElementById("<%=hylb_name.ClientID%> "); var optionArray = new Array();for (var i=0;i<s.options.length;i++) {optionArray.push(s2.options[i]);}
for (var j in optionArray) {s.options.remove(optionArray[j]);}
<option>1</option>
<option>2</option>
</select>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.getElementById("aaa").options.length=0
//-->
</SCRIPT>
{
drp2.options.remove(i);
}
就没有错误了,但drp2下拉还是会有值,为什么会这样
drp2.options.length=0;///////清除所有options
脚本提示错误:该对象不支持此属性和方法
while(drp2.options.length>0)
{
drp2.options.remove(0);
}for
for(var i=0;i<drp2.options.length;)
{
drp2.options.remove(i);
i=0;//========这里把i置0,这样才能删除所有项
}
alert(drp2) //看看这里,你的drp2 取的有问题
我想是不是drp2.options.length这句的问题
使用 drp2.options.length=0 可以快速清除一般情况是这样使用remove(),应从最后索引开始移除
原因是因为如果从0索引开始移出,那么移除后,1索引自动会编程0索引,后面的索引依次类推
for(var i=drp2.options-1;i>=0;i--)
{
drp2.options.remove(i);
i=0;//========这里把i置0,这样才能删除所有项
}
for(var i=drp2.options-1;i> =0;i--)
{
drp2.options.remove(i);
}
alert(drp2) //看看这里,你的drp2 取的有问题
没什么问题吧,我看过了,有值啊
参考10楼代码
var s = document.getElementById("<%=hylb_name.ClientID%> ");
var optionArray = new Array();for (var i=0;i<s.options.length;i++)
{optionArray.push(s2.options[i]);}
for (var j in optionArray)
{s.options.remove(optionArray[j]);}
以下这种删除方法是不正确的,只是看起来正确,实际并非如此
for(var i=0;i<drp2.options.length;i++)
{
drp2.options.remove(i);
/*
假设有3个option,那么length为3,初始条件为i<3 i为0(0<3;i++)
但是,当执行了一次删除语句之后,length就变为2,i也加了1,这时 i为1(1<2;i++)
第二次删除时,lenght变为了1,i从1又加了1 i为2(2<1,i++) 显然,并没有删除完,就使循环退出了 关键是,lenght属性是不断变化的
*/
}
alert(drp2.options.length);
for(var i = drp2.options.length-1;i>=0;i--)
{
drp2.options.remove(i);///////这句通不过,现在。“对象不支持此属性和方法
”
}
我把21楼代码运行,去掉了i> =0; 之间的空格 完全正常
alert(drp2.options.length);
for(var i = drp2.options.length-1;i>=0;i--)
{
drp2.options.remove(i);
}我这里怎么没通过呢?郁闷
你先把drp2.options.remove(i); 改为window.alert(drp2.options[i].value)试试,看能弹出不
你先把drp2.options.remove(i); 改为window.alert(drp2.options[i].value)试试,看能弹出不
var drp2 = document.getElementById("<%=hylb_name.ClientID%>");
for(var i = drp2.options.length-1;i>=0;i--)
{
//drp2.options.remove(i);/////////////////////这句过不去
//window.alert(drp2.options[i].value);
}
会不会是hylb_name控件还没生成 你就开始调用了
<option value="01011">谷物及其他作物的种植</option>
<option selected="selected" value="01012">蔬菜、园艺作物的种植</option>
<option value="01013">水果、坚果、饮料和香料作物的种植</option>
<option value="01014">中药材的种植</option>
<option value="02021">林木的培育和种植</option>
<option value="02022">木材和竹材的采运</option>
<option value="02023">林产品的采集</option>
<option value="03031">牲畜的饲养</option>
<option value="03032">猪的饲养</option>
<option value="03033">家禽的饲养</option>
<option value="03034">狩猎和捕捉动物</option>
<option value="03039">其他畜牧业</option>
<option value="04041">海洋渔业</option>
<option value="04042">内陆渔业</option>
<option value="05051">农业服务业</option>
<option value="05052">林业服务业</option>
<option value="05053">畜牧服务业</option>
<option value="05054">渔业服务业</option></select>
d = document.getElementById("DBranch_No");
//将select 中值清空 ie
if (d.options.length>0)
{
for(j=d.options.length;j>=0;j--)
{
try{
d.options.remove(j);//ie
}
catch(e)
{
d.options[j]=null;//ff
}
}
}