Javascript 使用jQuery更改HTML字符串:不会更新字符串

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

我有一些JQuery,它需要2个HTML字符串。每个字符串包含完全相同的html,除了在一个字符串中,每个元素的内部文本内容将不同,此字符串称为newContent,另一个oldContent

我的函数:迭代oldContent,对于类“可更新”(在oldContent中)的每个元素,我们将其innerText更改为newContent中相同元素的innerText

我的问题:这不是更改oldContent的内容,在我执行该函数后,oldContent包含完全相同的HTML(应该发生的是,类Updateable的元素应该具有不同的innerText)

为什么字符串oldContent没有更改

    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上的工作演示: