2014-06-24 27 views
1

我在页面上使用它之前,想要修改ajax调用中的一个大的html字符串。我想知道是否可以编辑字符串,如果我把它存储在一个变量,然后使用新编辑的字符串。在Ajax调用的成功,这是我做的:编辑(附加?)一个存储在jQuery变量中的字符串

$.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,然后在该(2个小div)中添加一些额外的html。这可能与jQuery的? 感谢

回答

5

将字符串到DOM元素:

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

然后你就可以更新此DOM有:

$(".widgetFooter", domHere).append("<div>...</div><div>...</div>"); 

然后做:

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

完美,谢谢先生。 – ajmajmajma

0

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

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

然后完成与:

​​
0

你可以操纵的字符串,但在这种情况下,更容易从它创建元素,然后操纵元素:

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

然后把元素在列表元素中,而不是连接字符串:

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

Now yo你可以追加列表元素,无论你以前做什么追加字符串。 (没有必要把它变成一个字符串,只能将它变成元素。)例如:

$('#MyList').append(item); 
相关问题