2012-07-27 9 views
0

我想要做的是讀取另一個html的主體內容,並將其另存爲一個var函數。我目前使用jQuery的是$(id of this document).load(link goes here)。例如:將另一個html的主體加載到jQuery中並將其存儲爲javascript var

$("#test").load("/form.cgi?A1=?")

形式只包含<body>some value</body>

<a id="test">hello</a>因爲我沒有使用DOM在所有這種方法的偉大工程的主體。

但是,我想將數據存儲到一個JavaScript變量。所以,我認爲我完成了一半。有人可以闡明如何做到這一點?

理想情況下,這樣的:

「的功能(測試) {

變種X = $ .load(測試);

//操縱X如parseInt函數/ parseFloat等

} ' 謝謝!

回答

0

你可能想改變你的方法對此:

var myVar = ''; 
$.get('/form.cgi?A1=?', function(data) { 
    myVar = data; 
}); 

alert(myVar); 

無法在回調函數外部訪問myVar的值,因爲此Ajax調用在加載頁面時是異步的,並且尚未調用回調函數並且myVar的值未更改,因此alert語句執行這就是爲什麼你得到空的數據。

要保留這個答案,讓回調函數像這裏面使用myVar的:

var myVar = ''; 
var externalVar = '<p>text</p>'; 
$.get('/form.cgi?A1=?', function(data) { 
    myVar = data; 
    //use myVar here for whatever purpose you want it for 
    var myNewVar = myVar + ' ' + externalVar; 
}); 

,您可以立即使用的myVar值作爲回調函數完成,這可能是5秒,30秒等Ajax調用

<input type="button" value="pol" onclick="alert(myVar);" /> //should work 

如需進一步信息後,看到我的評論貼

+0

嗨codingbiz。我試過這種方法,但是,響應是空的或''。當我回到'$(「#test」)。load(「/ form.cgi?A1 =?」)'id =「test」的元素時,它會成功讀取外部html的主體內容並替換這樣的id的元素。 – NothinRandom 2012-07-27 23:37:55

+0

檢查瀏覽器控制檯是否有錯誤 – codingbiz 2012-07-27 23:54:35

+0

我檢查過,沒有任何錯誤。我嘗試了所有發佈的方法,但沒有一個會工作。外部html頁面只有'值'這個好嗎? – NothinRandom 2012-07-27 23:57:44

0
var x = $("#test").load("/form.cgi?A1=?").html(); 

這應該這樣做,如果你想要的HTML文件的內容,它是。

+0

嗨亞歷克斯,謝謝你的回答。但是,我只是想將另一個html的正文內容加載到一個javascript變量中。正文內容包含像Hi或123這樣的一個單詞字符串/ int。問題是,如果#test不存在作爲當前文檔上某個元素的id,則它不會被執行。有沒有像var x = $ .load(「/ form.cgi?A1 =?」)? – NothinRandom 2012-07-27 23:25:23

0

​​是短期的$.ajax(),所以,你可以使用像這樣一個正常的Ajax請求:

的jQuery:

var result; 
$.ajax({ 
    type: 'POST', 
    url: '/form.cgi?A1=?', 
    success: function(data) { 
     result = data; 
    }, 
    async: false 
    // async to false so that we don't access an empty variable before the request is finished 
}); 

演示:http://jsfiddle.net/SO_AMK/wHXrM/

+0

我嘗試過這種方法,但目前爲止沒有骰子。我真的很困惑。 – NothinRandom 2012-07-28 00:02:36

0

大廈○鏈接編碼提供的是什麼,這是我現在擁有的。它不漂亮,但可以肯定的伎倆:

$.get(/form.cgi?A1=?, function(data){ 
    document.getElementById("value").innerHTML = data; 
    var y = parseFloat(document.getElementById("value").innerHTML); 
    alert(y); 
}); 

爲什麼我用document.getElementById("value").innerHTML的原因是爲了去除包圍所需的值(即<body>value</body>)的<body>標籤。這是我迄今爲止唯一知道如何正確地parseInt/parseFloat的方法。如果我不這樣做,那麼由於body標籤,它會返回NaN。如果你有更好的方法,請讓我知道。謝謝

相關問題