簡體   English   中英

jQuery val()將不顯示值

[英]jquery val() will not display value

html()應該用於設置非格式元素(例如div)中的內容。 **這個問題已經被回答了幾次,我沒有意識到。

我試圖從$ .ajax調用中獲取評論后設置一個值。 當我提醒commentOutput和commentSpan的值時,它們顯示正確的數據。 但是,當我嘗試從一個范圍中的那些注釋中設置值時,它們不會顯示,也不會出現在生成的源中。

這是JavaScript。 您可以在控制台中查看POST的返回信息。 您還可以看到它正在捕獲范圍的值,因為我已經在單擊時提醒了它。

要調用此功能,只需單擊貓的第一張圖片,此時其他人都沒有評論。

var ajaxOptions = {
    type: 'POST',
    dataType: 'json',
    url: 'ajax/comments.php',
    data: { id: photoID, action: 'GetComments' },
    success: function(data) {

            for(i=0; i<data.length; i++) {

                    var commentOutput = '<div><h4>'+data[i].comment_user+' says:</h4>';
                    commentOutput += '<span>'+data[i].comment_msg+'</span>';
                    commentOutput += '</div>';
                    var commentSpan = '#photo' + data[i].photo_id + ' .comments';
                    $(commentSpan).val(commentOutput);
                    $(commentSpan).delay('200').css('display','block');
            }

    }
};

任何幫助將不勝感激,

干杯,

科迪

val()方法用於inputselecttextarea元素。

您應該改用html()text()方法。

注意:這是我最近對幾乎同一問題的答案的准確副本。 您是否嘗試過通過搜索找到解決方案?

您需要.html() ,而不是.val()

$(commentSpan).html(commentOutput);

另外,如果您的服務器未使用HTML將注釋數據轉義,則應在腳本中執行此操作:

function safe(s) {
  return s.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;');
}

// ...


var commentOutput = '<div><h4>'+ safe(data[i].comment_user) + ' says:</h4>';
commentOutput += '<span>'  + safe(data[i].comment_msg) + '</span>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM