这是我的jQuery,我正在尝试在abc div类内添加新数据


var html = '<div class="wrapper"><div class="abc"></div></div>';

if (someData == "YES"){

  var newHTML = '<div>hello</div>';
  $(html).find(".abc").html(newHTML);

}

$(body).html(html);




如何获取更新的HTML?

最佳答案

问题是因为您从html中的字符串创建了一个jQuery对象,并修改了该对象,但没有在任何地方存储对该对象的引用。

调用$(body).html()时,您将附加原始字符串,而不是更改的jQuery对象。因此,您需要将逻辑更改为此:



var html = '<div class="wrapper"><div class="abc"></div></div>';
var $html = $(html); // create the jQuery object and store a reference to it

// alternatively the above can be made in to one line:
// var $html = $('<div class="wrapper"><div class="abc"></div></div>');

if (someData == "YES") {
  var newHTML = '<div>hello</div>';
  $html.find(".abc").html(newHTML); // amend the jQuery object
}

$(body).html($html); // add the updated HTML to the DOM

09-20 23:59