2013-10-10 47 views
0

我有一個AJAX調用,它提供了生成jQuery圖的數據。每次運行此AJAX調用時,都會返回新的JSON數據並自動更新繪圖。使用javascript去除子元素

除了繪製JSON數據之外,還有一些代碼會創建一個按鈕,該按鈕將作爲子元素使用ConvertOrSave.appendChild(btn);附加。這段代碼唯一的問題是,每次調用AJAX時,都會附加一個新的btn。應該只需要一個按鈕。

在添加新按鈕之前,確保刪除上一個按鈕的最佳方法是什麼?謝謝。下面是代碼:

$("#flotAverageSalePricesCity").result(function(event, data, formatted) { 
if (data){ 
    $.ajax({ 
     url: sURL + "utility/ajaxmuniChart1c", 
     type: "POST", 
     data: {muni: data[0]}, 
     dataType: 'json',    
     success: function(json){ 
      if (data) {      
       myWidth = (document.getElementById('flot_widget').offsetWidth-45)+"px"; 
       myHeight = (document.getElementById('flot_widget').offsetWidth*.66)+"px"; 
       document.getElementById('wrapper').style.display = 'block';     
       document.getElementById('printflotcontainer').style.display = 'block'; 
       document.getElementById('flotcontainer').style.width = myWidth; 
       document.getElementById('flotcontainer').style.height = myHeight; 
       var options = { 
        series: { 
         lines: { show: true, fill: false, fillColor: "rgba(255, 255, 255, 0.8)" }, 
         points: { show: true, fill: true } 
        }      
       }; 

       $.plot("#flotcontainer", [json], options); 
       myCanvas = $('#flotcontainer').find('canvas.base');  
       flotcontainercanvas = myCanvas.get(0); 
       ctx3 = flotcontainercanvas.getContext('2d'); 
       myLocation = sURL + 'php/saveme.php'; 
       var cs = new CanvasSaver(myLocation) 
       var btn = cs.generateButton('Save', flotcontainercanvas, 'PTS_Chart');     
       ConvertOrSave.appendChild(btn); 
      } 
     } 
    }) 
} 
}) 

編輯:這裏是ConvertOrSave唯一的元素:

<div id="ConvertOrSave" class="g2"> 
     <button id="convert">convert</button> 
</div> 
+0

'btn'的類名是什麼? –

+0

你可以從成功回調中刪除按鈕添加並將其放在其他地方(如onload?)? –

+0

@JayHarris沒有'btn'的類名。它僅使用此處顯示的代碼創建。 – DanielAttard

回答

1

由於convertAndSave只有在它一個其他元素,可避免只需添加轉換和附加副本新的按鈕......(如果是有道理的)

var convert = document.getElementById('convert'); 
ConvertOrSave.innerHTML = convert + btn; 
1

您可以添加新的人之前刪除現有的按鈕:

var btn = document.getElementById('convert'); 
btn && btn.parentNode.removeChild(btn); 

見這裏:http://jsfiddle.net/F3Uxa/

+0

對不起@wilmoore,但這段代碼並不適合我。 – DanielAttard

1

您可以刪除現有的按鈕:

var btn = document.getElementById('convert'); 
if (btn != null){ 
    btn.remove(); 
} 

入住這Fiddle這將刪除現有的按鈕。 我希望這會幫助你。