2013-07-22 37 views
0

[嘗試1]獲取然後writeln

<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

'name'應該是'id' –

+0

我更新了我的答案。發佈答案的人在編輯問題時不會自動得到通知,因此請務必評論他們的答案或對他們發表評論:「@JasonP嘿,看看我!」 –

回答

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); 
    });  
}); 
+0

菲爾也不使用結果處理程序。在這種情況下,$ .get是異步調用。他只是打印出方法返回的任何內容,而不等待數據返回 –

+0

@ user2409138添加了解釋。 –

+0

@JasonP感謝大家一直堅持到getRdun,不知道我現在在哪裏。 –

1

嘗試:

$("body").text(example) 

writeIn()是不是要做到這一點的最好辦法。

+0

這也將被呈現爲HTML,而不是原始文本。 –

+0

謝謝,我錯讀了這個問題。請參閱我的編輯 – Toiletduck

+0

是的,只是一個小問題,'.get()'不會同步返回響應,而是一個jqHXR對象(您可以查看我的答案以獲取詳細信息)。 ':P' –

2

$.get是異步的。也就是說,你不能同步寫入Ajax調用的結果(除非使用非異步ajax但這很醜並經常凍結瀏覽器UI)。另外,$.get返回與$.Deferred接口兼容的jqXHR object。您應該將成功回調傳遞給$.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。

+0

這將呈現爲'HTML'你知道... – iConnor

+0

EHH我應該更加重視這個問題,謝謝@Connor –

+0

酷.... NP ..... – iConnor

0

你可以嘗試將其追加到HTML文件的孩子,像這樣

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

它會被添加到你的身體。 (我編輯感謝Connor和Kevin B的幫助)。雖然,沒有從賈森P.一個很好的答案

+0

'this'在這方面是不是一個DOM節點,它是由產生的選項ajax請求。 –

+0

Maye你應該把它改成'$('body').text(data);'那麼這將是正確的,你可能會得到一些投票 – iConnor

+0

@carlos我的身體上有多個div。你將如何集中這個輸出? –