Javascript 将变量传递到jQueryAjax
我陷入了一成不变的状态。我希望有人能帮忙 基本上,我正在用jQuery构建一个AJAX移动web应用程序。我能够很好地解析特定的XML文件,但我希望能够根据单击的链接解析其他XML文件,并将它们动态加载到同一个DIV或UL中 因此: 单击Link1,加载XML1Javascript 将变量传递到jQueryAjax,javascript,jquery,ajax,Javascript,Jquery,Ajax,我陷入了一成不变的状态。我希望有人能帮忙 基本上,我正在用jQuery构建一个AJAX移动web应用程序。我能够很好地解析特定的XML文件,但我希望能够根据单击的链接解析其他XML文件,并将它们动态加载到同一个DIV或UL中 因此: 单击Link1,加载XML1 单击Link2,加载XML2 我希望能够做到这一切客户端,所以没有PHP(或者这是一个坏主意?)。这是我一直使用的jquery代码: $(document).ready(function() { $
单击Link2,加载XML2 我希望能够做到这一切客户端,所以没有PHP(或者这是一个坏主意?)。这是我一直使用的jquery代码:
$(document).ready(function() {
$("a.load_ajax").click(loadAjax());
function loadAjax() {
var fileID = get('?lineID=');
var dataID = "xml/" + fileID + ".xml"
$.ajax({
type: "GET",
url: dataID,
dataType: "xml",
success: parseXml
});
function parseXml(xml) {
$(xml).find("train").each(function() {
$("ul#ajax-output").append('<li>' + $(this).find("time").text() + '</li>');
});
}
}
});
$(文档).ready(函数(){
$(“a.load_ajax”)。单击(loadAjax());
函数loadAjax(){
var fileID=get('?lineID=');
var dataID=“xml/”+fileID+“.xml”
$.ajax({
键入:“获取”,
url:dataID,
数据类型:“xml”,
成功:parseXml
});
函数解析xml(xml){
$(xml).find(“train”).each(函数(){
$(“ul#ajax输出”).append(“”+$(this.find(“time”).text()+” );
});
}
}
});
这根本不起作用。我一直在使用GET在url中传递变量。因此HTML中的链接转到/?lineID=SBD_to_Union,它应该将名为SBD_to_Union.XML的XML文件加载到
对任何人都有意义吗?我非常感谢您的帮助。您似乎正在努力从锚中的url获取该行。使用$(this)获取单击链接的href属性。然后,您可以使用正则表达式(如果url如所述)删除除用于构建XML链接的行id之外的所有内容。我假定XML是服务器端的,并且相对于当前url。如果没有,则需要调整路径。我冒昧地将函数内联,对内容进行了一些压缩编辑:单击处理程序应返回false,以防止链接实际执行其默认操作
$(function() {
$("a.load_ajax").click( function() {
var fileID = $(this).attr('href').replace(/.*?lineID=/,'');
var dataID = "xml/" + fileID + ".xml"
$.ajax({
type: "GET",
url: dataID,
dataType: "xml",
success: function(xml) {
$(xml).find("train").each(function() {
$("ul#ajax-output").append('<li>' + $(this).find("time").text() + '</li>');
});
}
});
return false;
});
});
$(函数(){
$(“a.load_ajax”)。单击(函数(){
var fileID=$(this.attr('href').replace(/.*?lineID=/,'');
var dataID=“xml/”+fileID+“.xml”
$.ajax({
键入:“获取”,
url:dataID,
数据类型:“xml”,
成功:函数(xml){
$(xml).find(“train”).each(函数(){
$(“ul#ajax输出”).append(“”+$(this.find(“time”).text()+” );
});
}
});
返回false;
});
});
是否检查了get
函数是否返回正确的数据
添加警报(fileID)代码>就在get(..)之后代码>行
但是为什么不创建直接指向xml文件的URL,而不是动态解析和创建URL呢
只需在html中创建指向xml/SBD\u to_Union.xml
的链接,乍一看,我认为您的ajax()语法有点不正确
您使用查询字符串是出于特定原因吗?如果没有,我会尝试为HTML链接提供您试图获取的XML文件的绝对URL:
<a href="xml/file123.xml"></a>
然后试试这个:
$("a.load_ajax").click(function(e) {
e.preventDefault();
var url = $(this).attr('href');
$.ajax({
type: 'GET',
url: url,
dataType: 'xml',
success: function(response) {
$(response).find('train').each(function() {
$('ul#ajax-output').append('<li>' + $(this).find('time').text() + '</li>');
}
});
});
$(“a.load\u ajax”)。单击(函数(e){
e、 预防默认值();
var url=$(this.attr('href');
$.ajax({
键入:“GET”,
url:url,
数据类型:“xml”,
成功:功能(响应){
$(响应)。查找('train')。每个(函数(){
$('ul#ajax output').append(''+$(this.find('time').text()+' ');
}
});
});
我没有测试过这个,但它应该可以满足您的需要。Hrm?如果没有服务器端代码,为什么查询参数会影响任何东西?…如果您有50个链接,那么在这个示例中没有50个链接,只有2个链接,那么为什么要编写一个50个链接的解决方案呢?是的,我只是想给Scott一些想法。rejex的答案在任何c语言中都是可伸缩的ase@Gaby@bobsoap@CRice,在我的电脑死掉之前,这是一个链接,指向真正的男人如何解决前面提到的可伸缩性问题-:)你有太多的空闲时间。如果关闭javascript,URL可能会加载另一个包含正确数据的页面。这是我的假设。因为我希望以后能够在项目中使用其他XML文件,而不仅仅是这个。@Scott-我想他是在建议链接href是一个可以直接使用的XML路径。@Scott,我我的意思是,与其让每个链接指向,不如让它直接链接到xml/somexmlforthislink.xml
<a href="xml/file123.xml"></a>
$("a.load_ajax").click(function(e) {
e.preventDefault();
var url = $(this).attr('href');
$.ajax({
type: 'GET',
url: url,
dataType: 'xml',
success: function(response) {
$(response).find('train').each(function() {
$('ul#ajax-output').append('<li>' + $(this).find('time').text() + '</li>');
}
});
});