JQuery:动态创建选择标记
我正在使用JQuery动态(基于用户选择)创建标记。 用户在文本框中输入require选项,我的代码创建它的select标签。 脚本是:
var numbersString = "1,2,3,4,5,6"; var data = numbersString.split(','); var s = $(""); for(var val in data) { $("", {value: val, text: data[val]}).appendTo(s); } s.appendTo("#msj_form");
其中msj_form是标签附加的div id。 现在它创建:
1 2 3 4 5 6
但是我也希望将标签和
My Label 1 2 3 4 5 6
var s = $(""); for(var val in data) { $("", {value: val, text: data[val]}).appendTo(s); }
在for循环之后,用TableRow和Cells包装所有内容,像这样, Jquery Wrap()
$(s).wrap('
');
/* 1- First get total numbers of SELECT tags used in your page to avoid elements name/id issues. * 2- Get all OPTIONS user entered with comma separator into a text box. * 3- Split user OPTIONS and make an array of these OPTIONS. * 4- Create SELECT code. * 5- Appent it into the temp div (a hidden div in your page). * 6- Then get that code. * 7- Now append code to your actual div. * 8- Filnally make empty the temp div therfore it will be like a new container for next SELECT tag. */ total = $("select").size() + 1; // 1- var myoptions = $("#myoptions").val(); // 2- var data = myoptions.split(','); // 3- var s = $(""); // 4- for(var val in data) { $("", {value: val, text: data[val]}).appendTo(s); } s.appendTo("#tempselect"); // 5- var getselectcode = $("#tempselect").html(); // 6- $("#msj_form").append(appendLabel+""+getselectcode+" "); // 7- $("#tempselect").html(''); // 8- // Temp div
var html = ' ' +' ';
我们假设,table = table_id的id
$('#table_id').append(html); $('#table_id').trigger('create');
我得到的是,如果你不调用trigger(),你选择的设计看起来完全搞砸了..
Ravi对答案的轻微修改 – 逐个附加每个元素是一个令人惊讶的高成本操作。
var s = $(""); var opts = []; for(var val in data) { opts.push( $("", {value: val, text: data[val]})); } opts.appendTo(s);