jQuery追加:无法正确获取引号

时间:2014-08-14 08:34:49

标签: javascript jquery quotes quoting

我试图在div中添加一些HTML,但我无法正确获取引号......这是我认为可行的,但不是......:< / p>

success: function (data) {
id = data.photo_id;
$("#successtext").append('<a href="https://www.theurl.com/' + id + '" data-role="button">The link</a><a href="#" data-role="button">Log Out</a>');
$("#success").show();
$("#uploading").hide();
$("#turn").hide();
turnable = 0;
}

如您所见,这是Ajax调用的一部分。请注意,附加确实有效,而不是使用正确的按钮标记。

注意:第一个链接指向例如https://www.theurl.com/223424324

我做错了什么,为什么?谢谢!

4 个答案:

答案 0 :(得分:2)

现有:

 '<a href="https://www.theurl.com/"'+id+'"

在向href添加id之前,您结束了id属性的引号,并且在添加'<a href="https://www.theurl.com/'+id+'" 之后,您再次添加了引号,这样就破坏了这些内容。

正确:

$.mobile.activePage.find('#successtext').trigger('create');

基本的一点是,当您在ajax请求之后附加文本时,jquery mobile不会在链接周围创建自己的DOM元素,使其看起来像一个按钮。因此,我们需要允许jquery mobile在添加文本后创建其DOM。 尝试以下功能。

{{1}}

Fiddle

答案 1 :(得分:1)

您在www.theurl.com/"'+id+'"处有额外报价,请更改为:

$("#successtext").append('<a href="https://www.theurl.com/'+id+'" data-role="button">The link</a><a href="#" data-role="button">Log Out</a>');

更新:: 在追加

后调用.trigger('create')
$("#successtext")
    .append('<a href="https://www.theurl.com/'+id+'" data-role="button">The link</a><a href="#" data-role="button">Log Out</a>')
    .trigger('create');

演示:: jsFiddle

答案 2 :(得分:1)

试试这个:

JS:

$('#successtext').append('<a href="https://www.theurl.com/'+id+'" data-role="button">The link</a><a href="#" data-role="button">Log Out</a>');

答案 3 :(得分:1)

jsFiddle Demo

正如其他人所指出的,问题是你的href有两个右引号(基本上是href="..."")。然而,它确实突出了在使用jQuery附加它们之前手动将长html片段填充到JS字符串中可能遇到的问题。考虑将html元素视为对象,并使用jQuery构造它们:

$("#successtext").append($("<a />", {
    href: "https://www.theurl.com/" + id,
    "data-role": "button",
    text: "The link"
}), $("<a />", {
    href: "#",
    "data-role": "button",
    text: "Log Out"
}));