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

标签 javascript jquery html

拜托,当我像这样成功地将数据附加到 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/

相关文章:

javascript - 在javascript中获取浏览器类型

javascript - 从一个元素获取名称并调用另一元素

javascript - 动态插入的包含文本的 div 的宽度

javascript - 如何删除 jQuery Accordion 的一部分?

javascript - 用于清除 appcache/cookies/localstorage 的小书签?

javascript - Angularjs无法读取未定义的属性 'id'

javascript - 如何确保使用 setTimeout 时 Javascript 的 "this"会引用该对象?

javascript - Hapi v17 中从回调到 async/await

javascript - 如何检测网页是否从网站或本地文件系统运行

html - 单行文本未与 div 中心对齐