2012-02-27 46 views
1

我想用jQuery動態生成的div標籤添加由div生成的div標籤元素。我的代碼如下所示:如何將由jQuery生成的div標籤動態添加到javascript div標記元素

$(".remove_item").click(function(){ 
    $(this).hide("fast", function(){ 
    var id = $(this).parent().attr("id"); 
    var remove_item_id = document.getElementById(id); 
    var block_element = document.getElementById("block"); 

    block_element.removeChild(remove_item_id); 

    new_item = $("<div/>"); 
    new_item.attr("id", "item"); 
    new_item.attr("name", "item"); 
    new_item.addClass("div_image"); 
    new_item.append($("<img/>") 
    .addClass("image") 
    .attr("src", "/compare/sites/default/files/add_item.jpg") 
    .attr("height", 50) 
    .attr("width", 50)); 

    new_item.append($("<span/>") 
    .addClass("new_item") 
    .click(function(){ 
    $(this).parent().remove(); 
    })); 

    block_element.append(new_item); 
}); 
}); 

的附加jQuery的div標籤代碼使用javascript div標籤應該是這樣的: block_element.append(NEW_ITEM);

但它給錯誤,因爲我們不能綁定,因爲我在同一行使用JavaScript和jQuery。有什麼辦法可以做到嗎?

回答

1

的唯一的事情,你需要改變的是

var block_element = $("#block"); 
$("#"+remove_item_id).remove(); 

休息應該照原樣。

0

您只需要在jQuery選擇器中傳遞該元素。

首先溶液(當您將追加):

$(block_element).append(new_item); 

二溶液(當您選擇元素)

var block_element = $("#block"); 
+1

第二種解決方案將打破'removeChild'。 – bfavaretto 2012-02-27 04:26:30

+0

即使第一個解決方案也不行 – Starx 2012-02-27 04:35:50

1

你需要做的是你應該將JavaScript元素轉換爲一個jQuery對象。

  1. $(block_element)可以將JavaScript元素轉換爲jQuery對象;
  2. 相反$(block_element)[0]可以將jQuery對象轉換爲JavaScript元素。
0
$(".remove_item").click(function(){ 
    $(this).hide("fast", function(){ 
     var elm = $("#block"), 
      parent = $(this).parent(), 
      img = $('<img src="/compare/sites/default/files/add_item.jpg" class="image" height="50px" width="50px" />'), 
      span = $('<span class="new_item"></span>'), 
      new_item = $('<div id="item" name="item" class="div_image"></div>').append(img).append(span); 

     elm.remove(parent).append(new_item).on('click', function(){ $(this).parent().remove(); }); 
}); 
相關問題