select下拉列表框动态选择不能用呢,JS代码

JavaScript017

select下拉列表框动态选择不能用呢,JS代码,第1张

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "

">

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html charset=gbk">

        <title>Untitled Document</title>

        <script type="text/javascript">

            window.onload = function(){

                var s = document.getElementById("org1.selShebeijibie")

                var ops = s.options

                for (var i = 0 i < ops.length i++) {

                    var tempValue = ops[i].value

                    if (tempValue == "2") //这里是你要选的值

                    {

                        ops[i].selected = "selected"

                        break

                    }

                }

            }

        </script>

    </head>

    <body>

        <select name="org1.selShebeijibie" id="org1.selShebeijibie">

            <option value="1">1</option>

            <option value="2">2</option>

            <option value="3">3</option>

        </select>

    </body>

</html>

你的主要原因是因为下拉框还没加载完就获取下拉框DOM对象,所以必须等整个网页加载完了再执行对页面元素的操作

以下是网上的资料:

浏览器加载显示html的顺序是按下面的顺序进行的:

1、IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的。

2、在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完)。

3、如果遇到语义解释性的标签嵌入文件(JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载。

4、并且在下载后进行解析,解析过程中,停止页面所有往下元素的下载。

5、样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行渲染。

6、JS、CSS中如有重定义,后定义函数将覆盖前定义函数。

注:JavaScript定义全局变量时,当值跟标签有关系时,JavaScript代码必须放在该标签后

不算太明白你说的意思,你可以把代码贴出来吗?你可以看一下,我的这个代码,不知道是不是你想要的效果啊。

<!DOCTYPE HTML>

<html>

<head>

<title>Tab切换</title>

<style>

*{margin:0padding:0}

#box{width:450pxmargin:20px auto}

input{width:120pxborder:1px solid black}

.contents{width:450pxheight:100pxborder:1px solid blackdisplay:none}

</style>

<script>

window.onload=function()

{

var box=document.getElementById('box') //这里要获取box,是为了下面选择DOM元素时,减少寻找范围,提高速度,也就提高性能了

aBtn=box.getElementsByTagName('input'),

aCont=box.getElementsByTagName('div') //生明多个变量时,尽量用一个var

/*

下面是处理程序,原理是为每个按钮添加一个onclick事件,监听哪个按钮触发了,就触发哪个处理程序

*/

for(var i=0i<aBtn.lengthi++)

{

aBtn[i].index=i

aBtn[i].onclick=function()

{

//onclick时,先要把三个DIV全隐藏起来

for(var j=0j<aCont.lengthj++)

{

aCont[j].style.display='none'

}

//然后再让目标DIV显示出来

aCont[this.index].style.display='block'

}

}

}

</script>

</head>

<div id="box">

<input type="button" value="按钮1" />

<input type="button" value="按钮1" />

<input type="button" value="按钮1" />

<div class="contents" style="display:block">内容一</div>

<div class="contents" >内容二</div>

<div class="contents" >内容三</div>

</div>

</html>

简单一点儿的实现,不用ajax.

你的两个下拉框里面的数据很少,可以在网页生成的时候直接从数据库读出,以数组的形式生成字符串,拼进javascript里面。如: [["js","vbs"],["vb","java"]]根据第一个下拉框选择的内容确定数组索引,把相应索引动态添加到第二个下拉框中。