编辑(追加?)存储在jquery变量中的字符串

edit (append?) a string stored in a jquery variable

本文关键字:变量 jquery 字符串 存储 追加 编辑      更新时间:2023-09-26

我在ajax调用中带来了一个大的html字符串,我想在页面上使用它之前修改它。我想知道是否有可能编辑字符串,如果我将其存储在一个变量中,然后使用新编辑的字符串。在ajax调用成功时,我所做的是:

    $.each(data.arrangement, function() {
              var strHere = "";
              strHere = this.htmlContent;
                      //add new content into  strHere  here
              var content = "<li id=" + this.id + ">" + strHere +      "</li>";

htmlContent是我存储在字符串中的html代码块的关键。它没有问题存储字符串(我检查了一个警报),但问题是我需要在存储的字符串内的目标div称为。widgtefooter,然后添加一些额外的html(2个小div)。这是可能的jquery吗?由于

将字符串转换为DOM元素:

domHere = $("<div>" + strHere + "</div>");

然后你可以用

更新这个DOM:
$(".widgetFooter", domHere).append("<div>...</div><div>...</div>");

那么做:

var content = "<li id=" + this.id + ">" + domHere.html() +      "</li>";

@Barmar's的另一种方式是:

var domHere = $('<div/>').html( strHere ).find('.widgetFooter')
.append('<div>....</div>');

然后以:

结尾
var content = '<li id="' + this.id + '">' + domHere.html() + '</li>';

您可以操作字符串,但在本例中,更容易从它创建元素,然后操作元素:

var elements = $(this.htmlContent);
elements.find('.widgteFooter').append('<div>small</div><div>divs</div>');

然后将元素放在列表元素中,而不是串联字符串:

var item = $('<li>').attr('id', this.id).append(elements);

现在可以在前面添加字符串的地方添加列表元素。(转换成字符串只是为了再次转换成元素是没有意义的。)例子:

$('#MyList').append(item);