拜托,当我像这样成功地将数据附加到 div 元素时,我有一个 JQuery 代码
$('#conversation').append('<div id="receiver"><p><b>' + username + ':</b> ' + data + '</p></div><br>');
现在假设我想要一个 anchor 标记,其中有一个超链接作为属性,并且我想将一个变量传递给该 href 属性而不是链接本身,因为我不知道将发送的链接类型。我在尝试附加此内容时遇到问题。
$('#conversation').append('<div id="receiver"><p><b>' + username + ': <a id="link" href="'+ data +"></a></p></div><br>');
这不起作用。知道如何解决这个问题。 这是我的整个代码片段
socket.on('updatechat', function (username, data) {
//showing username and the message sent
var checkifdataisalink=data;
var check=checkifdataisalink.split('://')
if((check[0]=='http')||(check=='https'))
{
$('#conversation').append('<div id="receiver"><p><b>' + username + ': <a id="link" href="'+ data +"></a></p></div><br>');
}else{
$('#conversation').append('<div id="receiver"><p><b>' + username + ':</b> ' + data + '</p></div><br>');
}
});
最佳答案
除了缺少引号之外,if 条件的 or
部分还缺少 [0]
。见下文。
//For demo purposes only
var check = ["http", "other-part-of-the-url"];
var username = "user";
var data = "data";
// --;--
if(check[0] == 'http' || check[0] == 'https') {
$('#conversation').append('<div id="receiver"><p><strong>' + username + ':</strong> <a id="link" href="' + data + '">' + data + '</a></p></div><br/>');
} else {
$('#conversation').append('<div id="receiver"><p><strong>' + username + ':</strong>' + data + '</p></div><br/>');
}
演示@ fiddle
关于javascript - 如何在Jquery html元素属性中附加字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29188341/