2016-08-17 94 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