2017-08-08 37 views
0

我想在html中顯示ajax結果,但append()函數顯示原始html標記。我想在html中顯示ajax結果,但append()函數顯示原始html標記。

success:function(result){ 
     var element = document.createElement('div'); 
     jQuery.each(result.data , function(key,value){ 
      element.append('<div class="col-lg-6">'+value["name"]+'</div>') 

     }); 
     $('.user-profile').html(element); 

    } 

任何幫助!

+0

您是否檢查過結果是否爲空?或者,也許沒有價值[「名稱」]財產? – blewherself

+0

它顯示原始的html標籤的名稱:) – nohan

+0

你可以添加一個數據的例子 – y0hami

回答

2

你已經明確創建的每一個元素:

success:function(result){ 
     var element = document.createElement('div'); 
     jQuery.each(result.data , function(key,value){ 
      var divElem = document.createElement('div'); 
      divElem.className = 'col-lg-6'; 
      divElem.innerHTML = value["name"]; 
      element.appendChild(divElem); 

     }); 
     $('.user-profile').html(element); 

    } 

append方法接受節點對象和DOMString。但是,其規格尚未穩定。最好使用接受節點對象的appendChild

+0

謝謝它的工作原理很好......請你解釋爲什麼我的代碼不起作用。 – nohan

+0

您正在傳遞純html字符串/文本以附加方法,其中元素不是jquery對象。你可以將它轉換爲jquery對象,如下所示:'$(element).append('

'+value["name"]+'
')' – asmmahmud

2

您是否嘗試過簡單地將元素作爲html添加到元素中?

success:function(result){ 
    var element = $('<div/>'); 

    jQuery.each(result.data, function(key, value){ 
     element.append($('<div/>', {class: "col-lg-6",text: value["name"]})); 
    }); 

    $('.user-profile').html(element); 
} 

希望這有助於:

success:function(result){ 
    var str = ''; 
    jQuery.each(result.data , function(key,value){ 
     str += '<div class="col-lg-6">'+value["name"]+'</div>'; 
    }); 
    $('.user-profile').html(str); 

} 
+0

我試過這個,它工作...爲什麼我的代碼不工作。什麼原因 ? – nohan

+1

@nohan您試圖將元素的html值設置爲對象。如果你使用'$('。user-profile')。append(element);'它會起作用。然而,這樣做更好,因爲它構建所有標記並添加一個操作,而不是對頁面執行重複添加(這是一個顯着的差異)。 – Archer

+1

@阿切爾非常感謝 – nohan

0

由於您使用jQuery的它可以像完成。