将另一个html的主体加载到jQuery并存储为javascript var

时间:2012-07-27 23:06:49

标签: javascript jquery html

我想要做的是阅读另一个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 个答案:

答案 0 :(得分:0)

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

如果你想要html文件的内容,你应该这样做。

答案 1 :(得分: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/

答案 2 :(得分: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的值,在ajax调用之后可能是5秒,30秒等

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

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

答案 3 :(得分: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>标记(即<body>value</body>)。到目前为止,这是关于如何正确解析parseInt / parseFloat的唯一方法。如果我不这样做,那么由于body标签它会返回NaN。如果你有更好的方法,请告诉我。感谢