如何在Jquery html元素属性中追加字符串变量

时间:2015-03-21 21:37:24

标签: javascript jquery html

请将数据附加到div元素上时,我有一个JQuery代码,就像这样

 $('#conversation').append('<div id="receiver"><p><b>' + username + ':</b> ' + data + '</p></div><br>');

现在假设我想要一个锚标记,其内部有一个超链接作为atrribute,我想将一个变量传递给该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>');
}

});

2 个答案:

答案 0 :(得分:1)

更改

$('#conversation').append('<div id="receiver"><p><b>' + username + ': <a id="link" href="'+ data +"></a></p></div><br>')

成:

$('#conversation').append('<div id="receiver"><p><b>' + username + ': <a id="link" href="'+ data +'"></a></p></div><br>');

'

后只丢失了一个data

答案 1 :(得分:1)

除了缺少引号外,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