jQuery .Ajax()函数选择器,将特定数据存储在变量中

时间:2010-02-23 10:04:56

标签: javascript ajax jquery

我是jQuery的新手,我遇到以下问题。

我的项目有2页,1.JSP和2.html。现在我想从2.html中选择所选数据并在1.JSP上使用它。现在使用.load很容易实现这一点,但我希望数据存在于JavaScript变量中,而不是将其放在页面上(div标签等),以便我可以处理这些数据(修改或添加到数据库)。

我尝试使用.ajax并能够编写以下代码:

    var value = (function () {
        var val = nulll;
        var filename = " 2.html";

        $.ajax ({
            'async': false,
            'global': false,
            'url': filename,
            'success' : function(data) {
                val = data;
            }
        })
        return val;
    })()
    document.write(value)

我在哪里放置选择器格式(比如div.id5),以便我的变量只有相关数据而不是完整的文件数据?

3 个答案:

答案 0 :(得分:1)

function modify_data(data){
....
}

$.ajax({
   type: "POST", //POST OR GET
   url: "1.JSP", // URL TO SEND AJAX DATA TO
   data: "name=John&location=Boston", // DATA TO SEND
   success: function(data){ // CALLBACK FUNCTION
     modify_data(data);// sending data to another function to play with it
     $('body').html(data);
   }
 });

这是在修改收到的数据后发送Ajax请求并将其打印在正文上的方法。

答案 1 :(得分:0)

假设您有1.html和2.html,并且在2.html的正文中你有这个:

<body>
<h1 id="foo">hello</h1>
</body>

然后在你的1.html中你会得到H1里面的文字:

var filename = " 2.html";

$.ajax ({
    'async': false,
    'global': false,
    'url': filename,
    'success' : function(data) {
        var html = $(data);
        html.each(function() {
            if(this.tagName && this.tagName == 'H1') {
                alert( $(this).html() ); 
            }
        })
    }
})

这应该给出一个讨厌的JS警报,里面写着'hello'。

答案 2 :(得分:0)

我猜你是指$ .load()函数接收jquery选择器以及过滤结果的URL的能力。也就是说,今天你这样做是这样的:

$('div').load('2.html div.id5');

所以你真的希望能够使用$ .ajax()函数做同样的事情。我相信你最简单的方法就是在'success'事件函数中使用.find()jquery函数(我省略整个.ajax()调用,只需输入成功事件代码):

success: function (data) {
    val = $(data).find('div.id5').html(); 
    // now you ony have that specific div's contents
}

我在您的javascript代码中看到了一些其他错误,我认为您将要修复(如果您实际使用该代码)。

    // null is defined with 2 ls
    var val = nulll;

    // Is the space on purpose?
    var filename = " 2.html";