js控制select选定项问题

啾啾我 2011-04-26 01:00:25
<select name="select" onchange="aa()" id="select">
<option value="0">呵呵</option>
<option value="1">哈哈</option>
<option value="2">嘿嘿</option>
<option value="3">等等</option>
<option value="50">试试</option>
<option value="30">测试</option>
<option value="35">感觉</option>
</select>
<input name="ttt" type="button" id="ttt" onclick="xx()" />


<script language="javascript">
function aa()
{
var tt=document.getElementById("select").value;
alert(tt);
}
function xx()
{
document.getElementById("select").options[3].selected = true; //这个单击按钮时select的选定项是”等等“}
document.getElementById("select").options[30].selected = true; //这个单击按钮时出错 提示错误:document.getElementById(……).options30为空或者不是对象!
</script>
有没有办法解决啊!value是数据库值而且不是按顺序排列,像这种情况我应该怎么解决啊!求高人帮助,谢谢!
...全文
525 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzn1987 2011-04-26
  • 打赏
  • 举报
回复
我觉得用 jquery 就很方便实现了
啾啾我 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 net_lover 的回复:]
document.getElementById("select").options[30]
中的30不是value的值,而是第31个option的意思,你没有那么多option,所以报告错误的
[/Quote]
明白了,我理解错了,谢谢您了
孟子E章 2011-04-26
  • 打赏
  • 举报
回复
document.getElementById("select").options[30]
中的30不是value的值,而是第31个option的意思,你没有那么多option,所以报告错误的
孟子E章 2011-04-26
  • 打赏
  • 举报
回复
var s = document.getElementById("select").options;
for(i=0;i<s.length;i++)
{
if(s[i].value=="30") s[i].selected=true
}
hao05043356 2011-04-26
  • 打赏
  • 举报
回复
document.getElementById('select').options[document.getElementById('select').selectedIndex].text;
直接获得选中option
乌镇程序员 2011-04-26
  • 打赏
  • 举报
回复
根据你的需求,可以这样写:
function xx(val) {
var obj = document.getElementById('select').getElementsByTagName('option');
for (var i = 0; i < obj.length; i ++) {
if (obj[i].value == val) obj[i].selected = true;
break;
}
}
guoerwei 2011-04-26
  • 打赏
  • 举报
回复
var opts = document.getElementById("select").getElementsByTagName("option");
for (var i=0; i<opts.length; i++){
if (opts[i].value==30){
opts[i].selected=true;
}
}
hongmei85 2011-04-26
  • 打赏
  • 举报
回复
<select name="select" onchange="aa()" id="select">
<option value="0">呵呵</option>
<option value="1">哈哈</option>
<option value="2">嘿嘿</option>
<option value="3">等等</option>
<option value="50">试试</option>
<option value="30">测试</option>
<option value="35">感觉</option>
</select>
<input name="ttt" type="button" id="ttt" onclick="xx()" />


<script language="javascript">
function aa()
{
var tt=document.getElementById("select").value;
alert(tt);
}
function xx()
{
var kk = document.getElementById("select").options;
for (var i=0; i<kk.length; i++) {
if (kk[i].value==30) {
kk[i].selected=true;
break;
}
}
}
</script>
乌镇程序员 2011-04-26
  • 打赏
  • 举报
回复
options[30]
这里类似于数组操作,[]中指定的是数字索引,表示访问的是一堆option标签中的第几个,你写的30就是访问第31个option(数组索引从0开始标记)。
啾啾我 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yimail 的回复:]
要么自己在查询数据的时候 order by 一下;

你这情况,你是想要实现多选吗??
<input name="ttt" type="button" id="ttt" onclick="xx()" />
这个按钮的点击时激发的方法,我看得不是太明白。
[/Quote]
我不要多选 就是想根据options[参数]这个参数的值来改变select项的选定项即selected,
单击按钮就是触发document.getElementById("select").options[3].selected = true;
查找select项option value=“3”的那一项的selected=true,被选定。
yimail 2011-04-26
  • 打赏
  • 举报
回复
要么自己在查询数据的时候 order by 一下;

你这情况,你是想要实现多选吗??
<input name="ttt" type="button" id="ttt" onclick="xx()" />
这个按钮的点击时激发的方法,我看得不是太明白。

87,960

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧