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为mycontent
的div
,并且文件内容为纯文本:
$("#mycontent").text(a);
这是因为document.write()
方法重写了整个html文档。
你应该做的是找到你想通过javascript放置你的响应内容的元素(使用html()
方法,因为你正在使用jQuery):
$("#elementId").html(response);
response
是你的ajax内容。
使用$([some element]).load([your URL])
这将加载你收到的数据并将其放在目标元素中。