假设我有id参数和两个选择框
的功能<select id="one" onchange="Fill(2)"></select>
<select id="two" onchange="Fill(3)"></select>
<select id="three"></select>
我的功能
function Fill(id){
//some manupulation
$('<option/>').val(substr[0]).html(substr[1]).appendTo('#two');
}
但不是做很多
if(id==2) {$('<option/>').val(substr[0]).html(substr[1]).appendTo('#two');}
if(id==3) {$('<option/>').val(substr[0]).html(substr[1]).appendTo('#three');}
我想要像
这样的东西$('<option/>').val(substr[0]).html(substr[1]).appendTo(DYNAMIC);
答案 0 :(得分:6)
您可以使用select-1
,select-2
等ID来更轻松,然后使用'#select-' + id
。
否则你需要一个映射对象,它从数字映射到拼写数字。
答案 1 :(得分:2)
function Fill(id){
var index = {
1: 'one',
2: 'two',
3: 'three';
};
$('<option/>').val(substr[0]).html(substr[1]).appendTo('#' + index[id]);
// or just, but in this case you need to change the *id* pattern like opt_1, opt_2 etc
$('<option/>').val(substr[0]).html(substr[1]).appendTo('#opt_' + id);
}
答案 2 :(得分:0)
比你想象的容易:)
<select id="select-1" onchange="Fill(2)"></select>
<select id="select-2" onchange="Fill(3)"></select>
<select id="select-3"></select>
function Fill(id){ //
//some manupulation
$('<option/>').val(substr[0]).html(substr[1]).appendTo('select-' + id);
}
答案 3 :(得分:0)
将此行添加到填充功能的顶部:
var DYNAMIC = $(this);
答案 4 :(得分:0)
我将选择David Thomas的建议:
<select id="one" onchange="Fill(this);"></select>
<select id="two" onchange="Fill(this);"></select>
<select id="three"></select>
将填充功能定义为:
function Fill(select) {
$('<option />').val(/*..*/).html(/*..*/).appendTo($(select));
}
然后,您可以为您的选择提供您想要的任何ID,并且您不必查询DOM来查找对象。