admin管理员组文章数量:1435859
Lets say i have function with id paremeter and two select box
<select id="one" onchange="Fill(2)"></select>
<select id="two" onchange="Fill(3)"></select>
<select id="three"></select>
My function
function Fill(id){
//some manupulation
$('<option/>').val(substr[0]).html(substr[1]).appendTo('#two');
}
But instead of doing many
if(id==2) {$('<option/>').val(substr[0]).html(substr[1]).appendTo('#two');}
if(id==3) {$('<option/>').val(substr[0]).html(substr[1]).appendTo('#three');}
i want something like
$('<option/>').val(substr[0]).html(substr[1]).appendTo(DYNAMIC);
Lets say i have function with id paremeter and two select box
<select id="one" onchange="Fill(2)"></select>
<select id="two" onchange="Fill(3)"></select>
<select id="three"></select>
My function
function Fill(id){
//some manupulation
$('<option/>').val(substr[0]).html(substr[1]).appendTo('#two');
}
But instead of doing many
if(id==2) {$('<option/>').val(substr[0]).html(substr[1]).appendTo('#two');}
if(id==3) {$('<option/>').val(substr[0]).html(substr[1]).appendTo('#three');}
i want something like
$('<option/>').val(substr[0]).html(substr[1]).appendTo(DYNAMIC);
Share
Improve this question
asked May 21, 2012 at 16:11
Novkovski Stevo BatoNovkovski Stevo Bato
1,0432 gold badges24 silver badges56 bronze badges
1
-
1
I'm not entirely sure, hence the ment, but it looks like you just want to append the new
option
to the currently-changed element? So...wouldn't$('<option />').val(/*..*/).html(/*..*/).appendTo($(this));
work? – David Thomas Commented May 21, 2012 at 16:19
5 Answers
Reset to default 6You could make it much easier by using ids such as select-1
, select-2
etc. and then use '#select-' + id
.
Otherwise you need a mapping object which maps from digits to spelled numbers.
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);
}
easier than you think :)
<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);
}
I'm going to go with David Thomas' suggestion:
<select id="one" onchange="Fill(this);"></select>
<select id="two" onchange="Fill(this);"></select>
<select id="three"></select>
With the Fill function defined as:
function Fill(select) {
$('<option />').val(/*..*/).html(/*..*/).appendTo($(select));
}
You would then be able to give your selects whatever id that you want, and you would not have to query the DOM to find the object.
Add this line to the top of Fill function:
var DYNAMIC = $(this);
本文标签: javascriptJquery append to (dynamic by id)Stack Overflow
版权声明:本文标题:javascript - Jquery append to (dynamic by id) - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745672458a2669652.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论