[尝试1]
<script>
var example = $.get("example.html");
document.writeln(example);
</script>
我希望将源文件嵌入为原始文本(不是标记)。这甚至没有接近工作。
感谢大家的帮助和投入到目前为止!
[尝试2/3] @JasonP
...
<script>
$(document).ready(function () {
$.get("example.html").done(function (result) {
$('#SomeElement').text(result);
});
});
</script>
...
<a id="SomeElement" />
...
截至尝试3,我仍然没有从中得到任何东西。但是,我理解'准备好'。
答案 0 :(得分:3)
你说你想要原始文本而不是标记。我认为您的意思是希望“<span>text</span>
”在页面上显示为“<span>text</span>
”,而不是包含文字“text
”的范围。如果这是真的,这应该将结果写为文本而不是html:
$.get("example.html").done(function(result) {
$('#SomeElement').text(result);
});
您的示例无效,因为$.get
是异步的。发送ajax请求,然后执行继续,document.writeln()
行运行,但由于我们还没有ajax调用的结果,所以不打印任何内容。我的示例使用在{ajax函数返回结果后执行的done()
函数。
修改:
两件事。
首先,#
选择器用于元素id
s:
<a id="SomeElement" />
其次,确保将代码包装在一个就绪处理程序中,以便在尝试访问它时确保该元素存在:
$(document).ready(function() {
$.get("example.html").done(function(result) {
$('#SomeElement').text(result);
});
});
答案 1 :(得分:2)
$.get
是异步的。也就是说,您不能同步写入Ajax调用的结果(除非使用非异步ajax,但这很丑陋并经常冻结浏览器UI)。此外,$.get
会返回与jqXHR object界面兼容的$.Deferred
。您应该将成功回调传递给$.get
或附加Deferred.done
处理程序。
<div id="dynamicContent"></div>
<script>
//passing a callback function to $.get:
$.get("example.html", function(data) {
$('#dynamicContent').text(data);
});
</script>
另一种方法,将完成回调附加到延迟实例:
$.get("example.html").done(function(data) {
$('#dynamicContent').text(data);
});
您需要使用.text()
将收到的响应设置为#dynamicContent
元素的文本内容。 .text()
会将响应附加为文本节点,因此不会将其解释为HTML。
答案 2 :(得分:1)
尝试:
$("body").text(example)
writeIn()不是最好的方法。
答案 3 :(得分:0)
您可以尝试将其附加到html文件的子文件中,例如
$.get("example.html", function(data){
$('body').text(data);
});
它会添加到你的身上。 (我在Connor和Kevin B的帮助下编辑)。虽然,Jason P.有一个很好的答案。