簡體   English   中英

在jquery中將href添加到.text輸出

[英]Add href to .text output in jquery

我正在使用firebase來獲取這些數據,我想在message.userName輸出中添加href標簽

$('#winners').text('Winner:' + ' ' + message.userName + ' ' + ' '+ 'score:' + ' ' + message.score + ' ' + ' '+ 'Start time:' + ' ' + message.startTime + ' ' + ' '+ 'End time:' + ''     + message.endTime );

我試過了

$('#winners').text('Winner:' + ' ' + '<a href=\"scoreTracker.php?id='+message.userID +'\"> + '  message.userName + ' ' + ' '+ 'score:' + ' ' + message.score + ' ' + ' '+ 'Start time:'
+ ' ' + message.startTime + ' ' + ' '+ 'End time:' + '' + message.endTime + '<\a>' );

為了避免XSS攻擊(以及其他奇怪的問題),請附加一個錨元素並設置其文本。 這意味着您不必擔心逃避任何事情。

$('#winners').append([
  'Winner: ',
  $('<a>')
    .attr('href', 'scoreTracker.php?id=' + encodeURIComponent(message.userId))
    .text(
      message.userName + ' score: ' + message.score + ' Start time: ' + message.startTime + ' End time: ' + message.endTime
    )
]);

如果您的HTML變得更復雜,我可以建議使用JavaScript模板引擎嗎? 我在大多數項目中使用Swig ,但有很多選擇。

你必須使用append()或html()

$('#winners').append('Winner:' + ' ' + message.userName + ' ' + ' '+ 'score:' + ' ' + message.score + ' ' + ' '+ 'Start time:' + ' ' + message.startTime + ' ' + ' '+ 'End time:' + ''     + message.endTime );

這可能有助於您更好地理解:

http://api.jquery.com/category/manipulation/dom-insertion-inside/

@Brad和@ProllyGeek都是正確的 - 但@ Brad的解決方案最好考慮到XSS攻擊的潛在風險。 這是他的代碼,只是為了更好的可讀性而清理了一下。 :)

$('#winners').append([
    'Winner: ',
    $('<a />')
        .attr('href', 'scoreTracker.php?id=' + encodeURIComponent(message.userId)
        .text(message.userName + ' score: ' + message.score + ' Start time: ' + message.startTime + ' End time: ' + message.endTime)
]);

希望這可以幫助!

暫無
暫無

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

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