jQuery.Ajax:$ .get和document.write替换现有的标记

我最近发现了一种方法,使用jQuery Ajax将外部文件的内容包含到网站中。

  $.get("http://something.com/content.txt", function(a) { document.write("

Some text! - " + a + "

") });

输出将是以下:

 

Some text! - Content from external file

它工作正常,但此代码覆盖整个标记。 其他一切都将被排除在外。

任何想法如何解决这一问题?

document.write将替换所有内容。

您正在使用jQuery,所以如果您想保留现有代码,请尝试.append() ,如下所示:

 $.get("http://something.com/content.txt", function(a) { $("#element-where-inserting").append(a); }); 

将修改范围限定在文档中的特定选择器中,如果使用jquery并假设您有一个id为mycontentdiv ,并且文件内容为纯文本:

 $("#mycontent").text(a); 

这是因为document.write()方法重写了整个html文档。

你应该做的是找到你想通过javascript放置你的响应内容的元素(使用html()方法,因为你正在使用jQuery):

 $("#elementId").html(response); 

response是你的ajax内容。

使用$([some element]).load([your URL])这将加载你收到的数据并将其放在目标元素中。