首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

select标签的几个小问题

2012-10-24 
select标签的几个问题scriptfunction delFromLast(){var sdocument.getElementById(a)for(var is.o

select标签的几个问题

<script>function delFromLast(){var s=document.getElementById("a");for(var i=s.options.length;i>=0;i--){s.remove(i);//最后结果是option全部删除,}}function delFromFirst(){var s=document.getElementById("a");for(var i=0;i<s.options.length;i++){s.remove(i);//最后结果是留下2.4.6三项。因为remove(0)时,原来的1会放置到0的位置,后面的也逐个前移,然后remove(1)时,其实//是remove的2.这里跟数组的结构有关,因为数组是不允许有洞的。}}var oldOptions=null;var oldOptionReal=new Array();function add(){var s=document.getElementById("a");s.options.length=0;alert(oldOptions.length);//此时为0,所以下面不会执行。此处可以发现对象是引用对象还是值对象。在C#中,数组中一般是保存了值对象,这样看来js中也是一///样,而java中数据则还是保存的引用。当然c#中可以显式的设置要保存引用还是值。for(var i=0;i<oldOptions.length;i++){s.add(oldOptions[i]);}}function addReal(){var s=document.getElementById("a");s.options.length=0;alert(oldOptionReal.length);//此时为6,所以下面顺利的将所有option再加入到select中for(var i=0;i<oldOptionReal.length;i++){alert(oldOptionReal[i].text);s.add(oldOptionReal[i],4);//注意此处有兼容问题。 /*IE: s.add(options[i]) 在最后面加入一个optionss.add(optons[i],null) 报错Other:s.add(options[i],null)在最后面加入一个optionss.add(options[i],2)都是在指定index上加入一个options.如果当前select的最大index比这个值小,取最大index。*/}}</script></HEAD><BODY><select id="a"><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option></select><input onclick="delFromLast();" type="button"/><input onclick="delFromFirst();" type="button"/><input onclick="add();" type="button"/><input onclick="addReal();" type="button"/><script>oldOptions=document.getElementById("a").options;for(var i=0;i<oldOptions.length;i++){oldOptionReal.push(oldOptions[i]);}</script>
?

热点排行