0

我想要做的是读取另一个html的正文内容并将其保存为javascript函数中的var。我目前使用 jQuery 拥有的是$(id of this document).load(link goes here). 例如:

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

该表单只有一个包含<body>some value</body>

<a id="test">hello</a>这个方法很好用,因为我根本不需要使用 DOM。

但是,我想将数据存储到 javascript 变量中。所以,我想我已经完成了一半。有人可以阐明如何做到这一点吗?

理想情况下,类似:

'功能测试) {

var x = $.load(test);

//操作x如parseInt/parseFloat等

} ' 谢谢!

4

4 回答 4

0

建立在codingbiz提供的基础上,这就是我目前所拥有的。它不漂亮,但它确实可以解决问题:

$.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>围绕所需值(即<body>value</body>)的标签。到目前为止,这是我知道的关于如何正确解析 Int/parseFloat 的唯一方法。如果我不这样做,那么由于 body 标签,它会返回 NaN。如果你有更好的方法,请告诉我。谢谢

于 2012-07-28T07:56:57.733 回答
0
var x = $("#test").load("/form.cgi?A1=?").html();

如果您希望 html 文件的内容保持原样,则应该这样做。

于 2012-07-27T23:14:52.630 回答
0

.load()是 的缩写$.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/

于 2012-07-27T23:16:49.143 回答
0

你可能想改变你的方法:

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

alert(myVar);

因为这个ajax调用是在页面加载过程中异步调用的,所以无法myVar在回调函数之外访问到的值,并且回调函数没有被调用,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这可能是 ajax 调用后的 5 秒、30 秒等

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

有关更多信息,请参阅我在评论中发布的链接

于 2012-07-27T23:18:07.373 回答