仅使用部分URL运行if / else脚本

时间:2016-09-19 17:19:58

标签: javascript jquery ajax url

我正在尝试编辑我的Javascript以通过仅基于URL的一部分的AJAX调用来提取不同的数据。目前,我的if / else脚本如下所示:

if (window.location.href=="london") {
  $.ajax({
  url: '../financial-reports/outwork-vs-expenses-data-london.php',
  dataType: 'json'
  }).done(function(data) {
  data.forEach(function(item) {
      dates.push(item.date);
      expenses.push(item.expense);
      outworks.push(item.outwork);
      expensesOutworks.push(item.expensesOutwork);
      budgetedOutworks.push(item.budgetedOutwork);
      myExpensesChart.update();
      });
  });
} else {
  $.ajax({
  url: '../financial-reports/outwork-vs-expenses-data.php',
  dataType: 'json'
  }).done(function(data) {
  data.forEach(function(item) {
      dates.push(item.date);
      expenses.push(item.expense);
      outworks.push(item.outwork);
      expensesOutworks.push(item.expensesOutwork);
      budgetedOutworks.push(item.budgetedOutwork);
      myExpensesChart.update();
      });
  });
}

由于if window.location.href=="london")只是网址的一部分,而不是完整的网址,因此目前无效。有没有办法编辑此脚本只能根据页面URL的最后一位运行?例如:/london/nw等?有没有更好的方法来完成这项任务?

3 个答案:

答案 0 :(得分:1)

而不是

if (window.location.href=="london") {

使用以下代码

var URL = window.location.href;
if(URL.indexOf("london") !== -1)

.indexOf函数会在字符串中找出子字符串是否存在。在你的情况下,你想要"伦敦"是否存在于URL中。

答案 1 :(得分:0)

我假设你问的是,当网址类似于' https://example.com/london' ,所以你只想包括或获得伦敦的价值。下面的代码将有助于提供网址的最后一点值。

  window.location.pathname.splitOnLast('/')[1]

它会给你' / london'。或者您可以在网址中查看theondon的存在。

答案 2 :(得分:0)

首先,没有必要像上面那样使用if

您可以使用如下

 var dataurl = document.URL

  $.ajax({
        url: 'somepage.php',
        type: 'post',
        dataType: 'json',
        success: function (data) {
            console.log(data);
        },
        data: dataurl
    });

在somepage.php文件中,您可以根据dataurl处理您想要的数据 还可以在javascript中执行以下操作

   var urlTopost="other.php";
   if(document.url.indexOf("london")!==-1)
   {
     urlTopost="london.php";
   }

   $.ajax({
    url: urlTopost,
    type: 'post',
    dataType: 'json',
    success: function (data) {
        console.log(data);
    },
    data: dataurl
});