我是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),以便我的变量只有相关数据而不是完整的文件数据?
答案 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";