我正在尝试编辑我的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
等?有没有更好的方法来完成这项任务?
答案 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
});