如何使用jquery将元素添加到上一个元素(append)

时间:2012-07-18 13:34:30

标签: jquery

我在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”但当我再次点击它显示我双重附加元素我想只显示一次当我更改组合框值。

2 个答案:

答案 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