我有以下代码
$.getJSON("../services/getNavigationAffectedList.php", obj, function(response)
{
$.each(response, function(i, v)
{
// Get the old page source
var source = v;
// Get the updated preview HTML
var new_nav = $('#preview').find('#navigation-block').html();
// Replace the old navigation with the preview HTML
$(source).find('.navigation-block').html(new_nav);
var source = $(source).html();
var obj = {
page_path: i,
new_source: source
};
console.log(obj);
});
尝试替换内存(源)中包含的DOM中的导航块类。虽然,$(source).html()不会产生预期的结果。
帮助?
根据David的要求提供部分JSON响应:
{ “\ / VAR \ / WWW \ / HTML \ / CMS \ /网站\ /约\ /debbie.php”:“\ r \ n ...这里有更多的HTML ....}
这是一个小小的测试用: http://jsfiddle.net/eZP9E/1/
答案 0 :(得分:0)
尝试使用jQuery的replaceWith函数。这是你在找什么?
http://api.jquery.com/replaceWith/
你得到的不理想的结果是什么?
UPDATE:结果问题在于它在jQuery中创建DOM元素的方式。
您的代码期望'var original'是元素,但它不是。
var container = $('<html><body><div class="navigation">1</div></body></html>');
alert(container.length); // returns 1, div.navigation
var container = $('<html><body><div class="navigation">1</div><div class="body"></div></body></html>');
alert(container.length); // returns 2, div.navigation, div.body
var container = $('<div id="root"><html><body><div class="navigation">1</div></body></html></div>');
alert(container.length); // returns 1, sweet! we can use this
经过一些测试,这些是我从上面的代码得到的结果。
您的问题的快速解决方案是将代码更新为:
var original = $('<div id="root">' + v + '</div>', document);