0

[尝试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 时,我仍然没有从中得到任何东西。不过,我明白“准备好了”。

4

4 回答 4

3

你说你想要原始文本而不是标记。我假设您的意思是您希望“ <span>text</span>”在页面上显示为“ <span>text</span>”,而不是包含文本“ text”的跨度。如果这是真的,这应该将结果写为文本而不是 html:

$.get("example.html").done(function(result) {
    $('#SomeElement').text(result);
});

您的示例不起作用,因为$.get是异步的。ajax 请求被发送出去,然后继续执行并document.writeln()运行该行,但由于我们还没有 ajax 调用的结果,所以什么也不打印。我的示例使用在done()ajax 函数返回结果后执行的函数。

根据您的问题编辑编辑

两件事情。

首先,#选择器用于元素ids:

<a id="SomeElement" />

其次,确保将代码包装在准备好的处理程序中,以便在尝试访问它时可以确保元素存在:

$(document).ready(function() {
    $.get("example.html").done(function(result) {
        $('#SomeElement').text(result);
    });    
});
于 2013-07-22T20:58:54.523 回答
2

$.get是异步的。也就是说,您不能同步写入 Ajax 调用的结果(除非使用非异步 ajax,但这很难看并且经常冻结浏览器 UI)。此外,$.get返回一个与接口兼容的jqXHR 对象$.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。

于 2013-07-22T20:58:34.803 回答
1

尝试:

$("body").text(example)

writeIn() 不是最好的方法。

于 2013-07-22T20:56:54.760 回答
0

您可以尝试将其附加到您的 html 文件的子文件中,如下所示

$.get("example.html", function(data){
$('body').text(data);
});

它会添加到你的身体上。(我在 Connor 和 Kevin B 的帮助下进行了编辑)。虽然,Jason P 给出了一个很好的答案。

于 2013-07-22T20:59:12.677 回答