2016-08-17 133 views
0

我的HTML有这个在它:如何通过JS参数发送到AJAX js文件

<script src="../scripts/jquery-1.8.1.min.js"></script> 
<script src="../scripts/displayTable.js"></script> 

的displayTable.js由这样的:

$.ajax({ 
    url: "https://carcraft.atsbusinessandgames.com/xmls/carcraft_1-10-2Test.xml", 
    type: "Get", 
    dataType: 'xml', 
    success: function (result) { 
     $(result).find('Module').each(function() { 
      var name = $(this).attr("name"); 
      var url = $(this).find('url').text(); 
      var authors = $(this).find('authors').text(); 
      var version = $(this).find('version').text(); 
      var date = $(this).find('date').text(); 
      var description = $(this).find('description').text(); 
      $("#ModsList").append("<tr>" + "<td>" + "<a href=" + url + ">" + name + "</a>" + "</td>" + "<td>" + authors + "</td>" + "<td>" + version + "</td>" + "<td>" + date + "</td>" + "<td>" + description + "</td>" + "</tr>"); 
     }); 
    }, 
    failure: function() { 
    alert("Notify the site owner that the xml file is unreadable."); 
    } 
}); 

我将如何让这个我可以将url作为参数传递,而不是将其硬编码到js文件中,这样我可以在我的网站上的多个页面上使用相同的文件?

+0

创建函数,传递url作为参数。 :) :) – bipen

+0

'displayTable.js'应该定义一个将URL作为参数的函数。然后你调用这个函数。 – Barmar

回答

1

displayTable.js中定义一个函数,然后在加载脚本后调用它。

所以diaplayTable.js将包含:

function displayTable(url) { 
    $.ajax({ 
     url: url, 
     type: "Get", 
     dataType: 'xml', 
     success: function (result) { 
      $(result).find('Module').each(function() { 
       var name = $(this).attr("name"); 
       var url = $(this).find('url').text(); 
       var authors = $(this).find('authors').text(); 
       var version = $(this).find('version').text(); 
       var date = $(this).find('date').text(); 
       var description = $(this).find('description').text(); 
       $("#ModsList").append("<tr>" + "<td>" + "<a href=" + url + ">" + name + "</a>" + "</td>" + "<td>" + authors + "</td>" + "<td>" + version + "</td>" + "<td>" + date + "</td>" + "<td>" + description + "</td>" + "</tr>"); 
      }); 
     }, 
     failure: function() { 
      alert("Notify the site owner that the xml file is unreadable."); 
     } 
    }); 
} 

然后你使用它作为:

<script src="../scripts/jquery-1.8.1.min.js"></script> 
<script src="../scripts/displayTable.js"></script> 
<script> 
$(document).ready(function() { 
    displayTable("https://carcraft.atsbusinessandgames.com/xmls/carcraft_1-10-2Test.xml"); 
}); 
</script> 
+0

什么都没有显示,铬开发工具控制台说: 'VM9266 displayTable.js:20Uncaught SyntaxError:意外的输入结束' 这是最后一行。这可能很简单,但我很想念它。 – carstorm

+0

我添加了一个“}”来关闭该函数,现在我没有收到任何错误,但是我也没有得到该表来显示。 – carstorm

+0

调用该函数时,DOM中是否已有#ModsList? – Barmar

0

在这里你去,

function callAjax(url){ 
    $.ajax({ 
     url: url, 
     type: "Get", 
     dataType: 'xml', 
     success: function (result) { 
     $(result).find('Module').each(function() { 
      var name = $(this).attr("name"); 
      var url = $(this).find('url').text(); 
      var authors = $(this).find('authors').text(); 
      var version = $(this).find('version').text(); 
      var date = $(this).find('date').text(); 
      var description = $(this).find('description').text(); 
      $("#ModsList").append("<tr>" + "<td>" + "<a href=" + url + ">" + name + "</a>" + "</td>" + "<td>" + authors + "</td>" + "<td>" + version + "</td>" + "<td>" + date + "</td>" + "<td>" + description + "</td>" + "</tr>"); 
     }); 
     }, 
     failure: function() { 
     alert("Notify the site owner that the xml file is unreadable."); 
     } 
    }); 
}; 

呼叫功能,并通过URL作为参数究竟在哪儿你想叫它。

callAjax("https://carcraft.atsbusinessandgames.com/xmls/carcraft_1-10-2Test.xml"); 
callAjax("https://google.com"); 
+0

尝试了代码,尽管我在开发控制台中没有发现错误,但我也没有显示表格。 – carstorm

+0

非易失性存储器,发现错误,请参阅其他答案的评论! – carstorm