一个我认为有难度的问题!高手请进!

lmh79 2002-11-19 08:50:58
一般在动态创建Option的时候,是这样的:
new Option('Hongkong temp','1')
第一项和第二项分别对应txt和value,但是我想多附加两个属性,我在后面想增加两个,如下:
new Option('Hongkong temp','1','ttt','sss')
程序运行没有错误,但我如何访问到这两个附加属性呢!
...全文
88 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmh79 2002-11-20
  • 打赏
  • 举报
回复
oic

Lostinet(迷失网络)的应该可行!
JK_10000 2002-11-19
  • 打赏
  • 举报
回复
秋水大约是想告诉俺们(尤其是JK)Script参数的使用原理。
理会中
bencalie 2002-11-19
  • 打赏
  • 举报
回复
后面两个属性就是用于设置"defaultSelected","selected"属性的
JK_10000 2002-11-19
  • 打赏
  • 举报
回复
<select id=a1 onchange=alert(this(selectedIndex).defaultSelected)>
<option>1</option>
<option>2</option>
</select>
<script>
var obj=new Option ("3","c")
obj.select=false;
obj.arg1="ccc";
obj.arg2="ddd";
alert(obj.outerHTML);
a1.add(obj,2)
</script>
seabell 2002-11-19
  • 打赏
  • 举报
回复
qiushuiwuhen(秋水无恨)的做法是对的啊
lmh79 2002-11-19
  • 打赏
  • 举报
回复
我想到了解决方案,如下:

new Option('Hongkong temp|ttt|sss','1')

然后解析出needText = "HongKong temp"
arg1 = "ttt"
arg2 = "sss"
再分别使用就可以了,各位意下如何!
lmh79 2002-11-19
  • 打赏
  • 举报
回复
我试过qiushuiwuhen(秋水无恨)的做法,好像不行的!
lmh79 2002-11-19
  • 打赏
  • 举报
回复
没有完全明白 bencalie(Bencalie) 的意思!能再给个演示吗?
JK_10000 2002-11-19
  • 打赏
  • 举报
回复
学习中
qiushuiwuhen 2002-11-19
  • 打赏
  • 举报
回复
<script>
function a(){
for(var i=0;i<arguments.length;i++)alert(arguments[i]);
}
a(1,2.3,"fdsa");
</script>
bencalie 2002-11-19
  • 打赏
  • 举报
回复
<select id=a1 onchange=alert(this(selectedIndex).defaultSelected)>
<option>1</option>
<option>2</option>
</select>
<script>
var obj=new Option ("3","c","defaultSelected","selected")
a1.add(obj,2)
</script>
JK_10000 2002-11-19
  • 打赏
  • 举报
回复
如果你的参数比一个函数需要的参数还要多,函数将不处理这样的参数。
如果用new Option 创建 Option 时最多只有两个参数,那么你多输入的参数将不会得到处理,所以也没有办法去访问这两个附加属性

用其它方式解决吧
JK_10000 2002-11-19
  • 打赏
  • 举报
回复
不报错的原因,同以下程序:

<script>
function a(i)
{alert(i);
}
a(1,2.3,"fdsa");
</script>
Lostinet 2002-11-19
  • 打赏
  • 举报
回复
按 new Option 的做法可以这样:


var _Option=Option;
Option=function(t,v,a1,a2){

var option=new _Option(t,v);
option.expando1=a1;
option.expando2=a2;
return option;

}
Lostinet 2002-11-19
  • 打赏
  • 举报
回复
在Option上附加数据不是一个好办法.
因为其实Text+Value可以成为一个唯一的key的。
除非你的程序特殊..
对于这中情况。你应该做一个自己的集合:

var coll=new Object();

然后在Option调用的时候,
sel.add(new Option(text,value));
coll[value]={param1:"param1",param2:"param2"}

当然,如果你不习惯上面的做法,
可以这样:

function CreateOption(text,value,myarg1,myarg2)
{
var option=new Option(Text,Value);
option.expando1=myarg1;
option.expando2=myarg2;
return option;
}
潇洒 2002-11-19
  • 打赏
  • 举报
回复
按秋水老大的思路....... 如果能访问到 new Option(***)
中 Option 的 arguements . 那么你的想法就可以实现.....
lmh79 2002-11-19
  • 打赏
  • 举报
回复
但两地方是不同的,我自己做的时候就试过了!

我赞同bencalie(Bencalie)的,好像也是缺省的,不是自定义的。

87,910

社区成员

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

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