一大清早的问个问题,js创建option的问题

net205 2008-12-02 01:50:28
代码:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="Net205,冷风工作室" />
<meta name="keywords" content="Net205,冷风工作室" />
<meta name="description" content="" />
</head>

<body>
<script language="javascript">
var arrClass = [];
arrClass[arrClass.length] = {QuesID:1,ClassName:"生活/时尚",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:2,ClassName:"旅游/交通",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:3,ClassName:"休闲/娱乐",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:4,ClassName:"美食/烹调",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:5,ClassName:"家电/电子/网络",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:6,ClassName:"医疗/保健",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:7,ClassName:"运动/健身",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:8,ClassName:"购车/养车",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:9,ClassName:"教育/培训",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:10,ClassName:"其它",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:11,ClassName:"家政",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:15,ClassName:"服饰",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:16,ClassName:"化妆品",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:17,ClassName:"宠物",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:18,ClassName:"婚庆",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:26,ClassName:"理财",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:27,ClassName:"旅游常识",BigID:2,QuesNum:0}
arrClass[arrClass.length] = {QuesID:28,ClassName:"旅行社",BigID:2,QuesNum:0}
arrClass[arrClass.length] = {QuesID:33,ClassName:"火车",BigID:2,QuesNum:0}
arrClass[arrClass.length] = {QuesID:34,ClassName:"航空",BigID:2,QuesNum:0}
arrClass[arrClass.length] = {QuesID:35,ClassName:"问路",BigID:2,QuesNum:0}
arrClass[arrClass.length] = {QuesID:36,ClassName:"星座生肖",BigID:3,QuesNum:0}
arrClass[arrClass.length] = {QuesID:37,ClassName:"动漫",BigID:3,QuesNum:0}
arrClass[arrClass.length] = {QuesID:38,ClassName:"影音",BigID:3,QuesNum:0}


function ListClass(iBig, iSmall){
var objBigClass = document.getElementById("BigClassName");
var objSmallClass = document.getElementById("SmallClassName");
if(!objBigClass || !objSmallClass) return;

if(isNaN(iBig)) iBig = 0;
if(isNaN(iSmall)) iSmall = 0;
objBigClass.length = 0;

objBigClass.options[objBigClass.options.length] = new Option("所有", 0);
for(var i=0; i<arrClass.length; i++){
if(arrClass[i].BigID==0){
objBigClass.options[objBigClass.options.length] = new Option(arrClass[i].ClassName, arrClass[i].QuesID, (iBig==arrClass[i].QuesID ? true : false), (iBig==arrClass[i].QuesID ? true : false));
}
}
// TODO...
}

function BigClassChang(index){
var objBigClass = document.getElementById("BigClassName");
var objSmallClass = document.getElementById("SmallClassName");
if(!objBigClass || !objSmallClass) return;

if(index && index>0){
objSmallClass.length = 0;
objSmallClass.options[objSmallClass.options.length] = new Option("所有", 0);

for(var i=0; i<arrClass.length; i++){
if(arrClass[i].BigID == index){
objSmallClass.options[objSmallClass.options.length] = new Option(arrClass[i].ClassName, arrClass[i].QuesID);
}
}
}
}
</script>
<select id="BigClassName" name="BigClassName" onChange="javascript:BigClassChang(this.options[this.selectedIndex].value)">
<option value="0">所有</option>
</select>
<select id="SmallClassName" name="SmallClassName">
<option value="0">所有</option>
</select>
<script>ListClass(2,8);</script>
<button onclick="javascript:var obj = document.getElementById('BigClassName');alert(obj.innerHTML)">click</button>
</body>
</html>



像上面的代码,调用了函数ListClass(2,8);,我就是想让大类的select定位到QuesID为2的那一项,可实际总是定位到正确项的前一项,为什么new Option(arrClass[i].ClassName, arrClass[i].QuesID, (iBig==arrClass[i].QuesID ? true : false), (iBig==arrClass[i].QuesID ? true : false));不起作用????


tks
大清早的发个帖不容易呀
...全文
1485 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
zou_wei_forever 2008-12-02
  • 打赏
  • 举报
回复
帮顶兼mark
chunyou128 2008-12-02
  • 打赏
  • 举报
回复
ding
cloudgamer 2008-12-02
  • 打赏
  • 举报
回复
s_liangchao1s 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 cgisir 的回复:]
果然是IE6BUG, 感觉是处理速度滞后?
[/Quote]

Ie6在DOM渲染的时候 不能更改属性的原因吧
cgisir 2008-12-02
  • 打赏
  • 举报
回复
果然是IE6BUG, 感觉是处理速度滞后?
lengssmm 2008-12-02
  • 打赏
  • 举报
回复
觉得用延迟来解决吧。
s_liangchao1s 2008-12-02
  • 打赏
  • 举报
回复
这是大家写年月日联动时在ie6会经常忽略的问题
不悲不喜 2008-12-02
  • 打赏
  • 举报
回复
刚刚查了一下,确实是IE6的问题。
你只能在创建完select之后再设定选中项了。

这里有一篇讨论这个问题文章,
参考一下。

http://funcode.org/article/csharp/html-dom-optionselected-problem-with-ie.aspx
s_liangchao1s 2008-12-02
  • 打赏
  • 举报
回复
ie6的渲染问题 可以有几种解决方法 也可以用setTimeout(function(){},0)在option加载时延迟下
jiang_jiajia10 2008-12-02
  • 打赏
  • 举报
回复
我这没发现什么问题啊
s_liangchao1s 2008-12-02
  • 打赏
  • 举报
回复


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="Net205,冷风工作室" />
<meta name="keywords" content="Net205,冷风工作室" />
<meta name="description" content="" />
</head>

<body>
<script language="javascript">
var arrClass = [];
arrClass[arrClass.length] = {QuesID:1,ClassName:"生活/时尚",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:2,ClassName:"旅游/交通",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:3,ClassName:"休闲/娱乐",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:4,ClassName:"美食/烹调",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:5,ClassName:"家电/电子/网络",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:6,ClassName:"医疗/保健",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:7,ClassName:"运动/健身",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:8,ClassName:"购车/养车",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:9,ClassName:"教育/培训",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:10,ClassName:"其它",BigID:0,QuesNum:0}
arrClass[arrClass.length] = {QuesID:11,ClassName:"家政",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:15,ClassName:"服饰",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:16,ClassName:"化妆品",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:17,ClassName:"宠物",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:18,ClassName:"婚庆",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:26,ClassName:"理财",BigID:1,QuesNum:0}
arrClass[arrClass.length] = {QuesID:27,ClassName:"旅游常识",BigID:2,QuesNum:0}
arrClass[arrClass.length] = {QuesID:28,ClassName:"旅行社",BigID:2,QuesNum:0}
arrClass[arrClass.length] = {QuesID:33,ClassName:"火车",BigID:2,QuesNum:0}
arrClass[arrClass.length] = {QuesID:34,ClassName:"航空",BigID:2,QuesNum:0}
arrClass[arrClass.length] = {QuesID:35,ClassName:"问路",BigID:2,QuesNum:0}
arrClass[arrClass.length] = {QuesID:36,ClassName:"星座生肖",BigID:3,QuesNum:0}
arrClass[arrClass.length] = {QuesID:37,ClassName:"动漫",BigID:3,QuesNum:0}
arrClass[arrClass.length] = {QuesID:38,ClassName:"影音",BigID:3,QuesNum:0}


function ListClass(iBig, iSmall){
var objBigClass = document.getElementById("BigClassName");
var objSmallClass = document.getElementById("SmallClassName");
if(!objBigClass || !objSmallClass) return;

if(isNaN(iBig)) iBig = 0;
if(isNaN(iSmall)) iSmall = 0;
objBigClass.length = 0;

objBigClass.options[objBigClass.options.length] = new Option("所有", 0);
for(var i=0; i<arrClass.length; i++){
if(arrClass[i].BigID==0){
objBigClass.options[objBigClass.options.length] = new Option(arrClass[i].ClassName, arrClass[i].QuesID)
}

}
objBigClass.selectedIndex = iBig
// TODO...
}

function BigClassChang(index){
var objBigClass = document.getElementById("BigClassName");
var objSmallClass = document.getElementById("SmallClassName");
if(!objBigClass || !objSmallClass) return;

if(index && index>0){
objSmallClass.length = 0;
objSmallClass.options[objSmallClass.options.length] = new Option("所有", 0);

for(var i=0; i<arrClass.length; i++){
if(arrClass[i].BigID == index){
objSmallClass.options[objSmallClass.options.length] = new Option(arrClass[i].ClassName, arrClass[i].QuesID);
}
}
}
}
</script>
<select id="BigClassName" name="BigClassName" onChange="javascript:BigClassChang(this.options[this.selectedIndex].value)">
<option value="0">所有</option>
</select>
<select id="SmallClassName" name="SmallClassName">
<option value="0">所有</option>
</select>
<script>ListClass(2,8);</script>
<button onclick="javascript:var obj = document.getElementById('BigClassName');alert(obj.innerHTML)">click</button>
</body>
</html>


不悲不喜 2008-12-02
  • 打赏
  • 举报
回复
FF3下没问题,
IE6下确实不正确。
加了ALERT就没问题。
觉得好像是IE6的BUG。
不悲不喜 2008-12-02
  • 打赏
  • 举报
回复
arrClass[arrClass.length] = {
QuesID: 2,
ClassName: "旅游/交通",
BigID: 0,
QuesNum: 0
}


显示的就是这一项。
没错呀!!!
majianan 2008-12-02
  • 打赏
  • 举报
回复
ListClass(3,8)?
第一个是“所有”,第二个是“生活时尚”,第三个才是“旅游交通”
文盲老顾 2008-12-02
  • 打赏
  • 举报
回复
代码每行后面都没有;。。。。

在 FF2 下测试,定位到 "旅游/交通" 这项了
文盲老顾 2008-12-02
  • 打赏
  • 举报
回复
不支持FF。。。。
yeah920 2008-12-02
  • 打赏
  • 举报
回复
我IE7测试了下,我这里是定位到"旅游/交通"这项了.
majianan 2008-12-02
  • 打赏
  • 举报
回复
<select id="BigClassName" name="BigClassName" onChange="javascript:BigClassChang(this.options[this.selectedIndex].value)">
<option value="0">所有</option>
</select>
<select id="SmallClassName" name="SmallClassName">
<option value="0">所有</option>
</select>
<button onclick="ListClass(2,8);">click</button>
</body>

点击按钮,大类显示“旅游/交通”这一项(QuesID:2,ClassName:"旅游/交通",)
yeah920 2008-12-02
  • 打赏
  • 举报
回复
大清早先帮忙顶起来.
yangshenghong 2008-12-02
  • 打赏
  • 举报
回复
UP
加载更多回复(8)

87,922

社区成员

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

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