jQuery append()不适用于连接的String

时间:2016-10-07 06:14:37

标签: jquery html append string-concatenation

(下面的完整代码)

$('#' + id).parent().append('<div id="pop-up">hello</div>');

确实有效。但是这个

$('#' + id).parent().append('<div id="pop-up-' + id + '">hello</div>');

没有按&#39;吨

第一个版本有效的事实让我假设问题不是id变量......

所以完整的代码是

function clickOnElement(id) {
    var obj = {};
    obj.clicked = String(id);
    var jsonData = JSON.stringify(obj);
    $.ajax({
        type: 'POST',
        url: '../db/RequestHandler.ashx',
        data: jsonData,
        contentType: 'application/json; charset-utf-8',
        success: function (response) {
            // Add the div for the dialog-box
            $('<div>Hello</div>', {
                "id": "pop-up" + id
            }).appendTo($('#' + id).parent());
        },
        error: function () {
            console.log("request error");
        }
    });
}

3 个答案:

答案 0 :(得分:2)

使用 .appendTo()

  • .append().appendTo()方法执行相同的任务。
  • 主要区别在于语法特定,内容和目标的位置。
  • 使用.append(),方法前面的选择器表达式是插入内容的容器。
  • 另一方面,使用.appendTo(),内容在方法之前,作为选择器表达式或动态创建的标记,并将其插入目标容器。

代码示例

$('<div>Hello</div>', {
    "id": "pop-up" + id
}).appendTo($('#' + id).parent());

仅供参考,

请确保元素存在于DOM中,并将其附加到正确的选择器中。

希望这有帮助。

答案 1 :(得分:1)

使用jQuery(html, attributes)创建HTML,您可以安全地使用引号乱码

$('#' + id)
    .parent()
    .append($('<div>', {
        id: "pop-up-" + id ,
        text: "hello"
    });

答案 2 :(得分:1)

尝试以下

var parent = $('#' + id).parent();
var el = $('<div>', {id: "pop-up"+id,text:"hello"});
 el.appendTo(parent);

向创建的对象添加文本的正确方法是使用text属性:

演示:https://jsfiddle.net/gx6mrqr7/