2012-07-27 10 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。如果你有更好的方法,请让我知道。谢谢

相关问题