-1

我在 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”的第二个组合框,但是当我再次单击它时,会显示双重附加元素,当我更改组合框值时,我只想显示一次。

4

2 回答 2

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>");
    
于 2012-07-18T13:44:36.483 回答
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);
    });
});

示例@ jsfiddlejquery 网站上的更多详细信息

于 2012-07-18T15:08:48.003 回答