Javascript 使用jQuery更改HTML字符串:不会更新字符串
我有一些JQuery,它需要2个HTML字符串。每个字符串包含完全相同的html,除了在一个字符串中,每个元素的内部文本内容将不同,此字符串称为newContent,另一个oldContent 我的函数:迭代oldContent,对于类“可更新”(在oldContent中)的每个元素,我们将其innerText更改为newContent中相同元素的innerText 我的问题:这不是更改oldContent的内容,在我执行该函数后,oldContent包含完全相同的HTML(应该发生的是,类Updateable的元素应该具有不同的innerText) 为什么字符串oldContent没有更改Javascript 使用jQuery更改HTML字符串:不会更新字符串,javascript,jquery,html,string,Javascript,Jquery,Html,String,我有一些JQuery,它需要2个HTML字符串。每个字符串包含完全相同的html,除了在一个字符串中,每个元素的内部文本内容将不同,此字符串称为newContent,另一个oldContent 我的函数:迭代oldContent,对于类“可更新”(在oldContent中)的每个元素,我们将其innerText更改为newContent中相同元素的innerText 我的问题:这不是更改oldContent的内容,在我执行该函数后,oldContent包含完全相同的HTML(应该发生的是,类Up
function insertContentIntoUpdatableElements( oldContent, newContent )
{
// Pre: oldContent & newContent must be strings of HTML returned from jquery's
// $("").html()
try
{
alert("BEFORE: "+oldContent);
var index = 0;
var oldElements = $(oldContent).find(".updatable");
var newElements = $(newContent).find(".updatable");
$(oldContent).find(".updatable").each( function()
{
var txt = $(newElements[index]).text(); alert("TEXT: "+txt);
alert("OLD TEXT: "+$(this).text());
$(this).text(txt);
index++;
alert("NEW TEXT: "+$(this).text()); // prints out CORRECT updated/changed text
});
alert("AFTER: "+oldContent); // prints out INCORRECT updated/changed text for each element of class "updatable"
return oldContent;
}
catch(ex) { alert("In insertContentIntoUpdatableElements(): "+ex); return "FAILED"; }
}
这应该能奏效
function insertContentIntoUpdatableElements( oldContent, newContent )
{
var result = $(oldContent);
var oldElements = result.find(".updatable");
var newElements = $(newContent).find(".updatable");
$(oldElements).each(function(index, el)
{
$(oldElements[index]).text($(newElements[index]).text());
});
return result;
}
查看JSFIDLE上的工作演示:这应该就可以了
function insertContentIntoUpdatableElements( oldContent, newContent )
{
var result = $(oldContent);
var oldElements = result.find(".updatable");
var newElements = $(newContent).find(".updatable");
$(oldElements).each(function(index, el)
{
$(oldElements[index]).text($(newElements[index]).text());
});
return result;
}
查看JSFIDLE上的工作演示: