我在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代码块的关键。存储字符串没有问题(我用警报检查),但问题是我需要在存储的字符串中定位一个名为.widgteFooter的div,然后在其中添加一些额外的html(2个小div)。这有可能与jquery? 感谢
答案 0 :(得分:5)
将字符串转换为DOM元素:
domHere = $("<div>" + strHere + "</div>");
然后您可以使用以下命令更新此DOM:
$(".widgetFooter", domHere).append("<div>...</div><div>...</div>");
然后做:
var content = "<li id=" + this.id + ">" + domHere.html() + "</li>";
答案 1 :(得分:0)
@ Barmar的替代方法是:
var domHere = $('<div/>').html( strHere ).find('.widgetFooter')
.append('<div>....</div>');
然后完成:
var content = '<li id="' + this.id + '">' + domHere.html() + '</li>';
答案 2 :(得分:0)
您可以操纵字符串,但在这种情况下,更容易从中创建元素然后操纵元素:
var elements = $(this.htmlContent);
elements.find('.widgteFooter').append('<div>small</div><div>divs</div>');
然后将元素放在list元素中而不是连接字符串:
var item = $('<li>').attr('id', this.id).append(elements);
现在,您可以将list元素附加到之前附加字符串的位置。 (转换为字符串只是为了再次将其转换为元素没有意义。)例如:
$('#MyList').append(item);