我在jquery中有以下代码:
var qtype ="<select id='qtype'><option>qt1 </option><option>qt2</option></select>";
var abc ="<select id='t1'><option>Simple 1</option><option>Simple 2</option></select>";
var xyz ="<select id='t2'><option>Hard</option></select>";
var pqr ="<select id='t3'><option>Diff</option></select>";
$("#qttype").html(qtype);
var qtype=$("qttype");
if(qtype== "qt1"){
$("#t1").change(function(){
$("#abc").change(function(){
$("#divid").html(abc+xyz);
$("#divid").html(abc+xyz+pqr);
}); }
但它没有正确附加元素我的意思是当我改变“简单1”这显示第二个组合框与“xyz”但当我再次点击它显示我双重附加元素我想只显示一次当我更改组合框值。
答案 0 :(得分:2)
如果元素位于要追加的位置之后,则应该查看.before()。您也可以使用.after(),但在这种情况下,您必须选择上一个元素。
示例:
$("element").before("<p>this p will be added before the 'element'</p>");
$("element").after(" <p>this p will be added after the 'element'</p>");
答案 1 :(得分:1)
举了一个例子,希望这会有所帮助!
$(document).ready(function(){
$(document.body).append('<div id="abc"></div>'); // create new #abc and append it directly to body
$('#abc').append($('<div/>').attr('id','divid').html('hello!'));
var course = $('<select id="qtype"></select>'); // jquery object containing #qtype
var abc = '<option value="s">Simple</option>'; // string
var xyz = '<option value="h">Hard</option>'; // string
var pqr = '<option value="d">Diff</option>'; // string
course.append(abc).append(xyz).append(pqr); // triple call of .append()
//alert("course is " + course + ",\n course[0] is " + course[0] + ' ~ ' + course[0].innerHTML);
$('#abc').before(course); //insert <select> before #abc
$('#qtype').change(function(){
var str = this.options[this.selectedIndex].value;
str += ' ~ ' + this.options[this.selectedIndex].innerHTML;
$('#abc').html(str);
});
});
示例@ jsfiddle,更多详情请见jquery website