Javascript 将href添加到jquery中的.text输出

Javascript 将href添加到jquery中的.text输出,javascript,jquery,Javascript,Jquery,我用firebase来获取这些数据, 我想将href标记添加到message.userName输出中 $('#winners').text('Winner:' + ' ' + message.userName + ' ' + ' '+ 'score:' + ' ' + message.score + ' ' + ' '+ 'Start time:' + ' ' + message.startTime + ' ' + ' '+ 'End time:' + '' + message.endT

我用firebase来获取这些数据, 我想将href标记添加到message.userName输出中

$('#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>' );
$('#winners').text('winners:'+'+'+'消息.用户名+'+'+'分数:'+'+''消息.分数+'+'+'开始时间:'
+''+message.startTime+''++''结束时间:'+''+message.endTime+'';
您必须使用append()或html()

这可能有助于您更好地理解:

为了避免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
    )
]);
$('#winners')。追加([
“获胜者:”,

$('对于大多数项目,但有很多选择。

无论@Brad还是@ProllyGeek都是正确的——但是@Brad的解决方案最好是考虑到XSS攻击的潜在风险。这是他的代码,只是为了更好的可读性而进行了一些清理。:)

$('#winners')。追加([
“获胜者:”,
$('')
.attr('href','scoreTracker.php?id='+encodeURIComponent(message.userId)
.text(message.userName+'score:'+message.score+'开始时间:'+message.startTime+'结束时间:'+message.endTime)
]);

希望这有帮助!

您是否尝试将.text()更改为.html()?小心…您的答案会使他们面临潜在的XSS攻击。我在上面的答案中添加href的位置如何?我在显示文本时遇到了问题。请问,您是警告我,还是问问题的人?!我认为brad的答案比我的好(更安全)。我正要修改一个示例,但没有必要。我认为您缺少一个右括号:
encodeURIComponent(message.userId).text(
。谢谢@jmdb。事实上,我几分钟前刚刚编辑并清理了它。另外,欢迎使用Stack Overflow!如果您愿意,您可以编辑其他人的帖子。object没有方法文本是我收到的错误消息。尝试了。html代替了。text相同的错误obect没有方法“html”有任何建议吗?@user3052997:您应该是Brad的代码,不是这个。这个不正确,应该是
$('')
,而不是
$('a')
。虽然我不认为这会引发这样的错误。噢,snap--我不知道你可以编辑别人的帖子。谢谢@Brad!
$('#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
    )
]);
$('#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)
]);