如何检查 URL 中的 ID 并使用 getJSON 仅输出该 ID
How to check for ID in URL and output only that with getJSON
这是我的HTML。
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"> </script>
<script>
$(function() {
var people = [];
$.getJSON('test.json', function(data) {
$.each(data.person, function(i, f) {
var tblRow = "<tr>" + "<td>" + f.ID + "</td>" +"<td>" + f.Destination + "</td>" +
"<td>" + f.SupplierName + "</td>" + "</tr>"
$(tblRow).appendTo("#userdata tbody");
});
});
});
</script>
</head>
<body>
<table id= "userdata" border="2">
<thead>
<th>ID</th>
<th>Destination</th>
<th>SupplierName</th>
</thead>
<tbody>
</tbody>
</table>
</body>
</html>
这是我的 test.json 文件
{
"person" : [
{
"ID" : 100,
"Destination" : "brisbane",
"SupplierName" : "Hilton Brisbane",
},
{
"ID" : 101,
"Destination" : "brisbane",
"SupplierName" : "Hotel Grand Chancellor Brisbane",
},
{
"ID" : 102,
"Destination" : "brisbane",
"SupplierName" : "Park Regis North Quay",
}
]
}
我想做什么
输出工作正常。但这是我正在尝试做的事情。
我的网站看起来像 www.website.com?deal=100
我想在 'deal' 参数的末尾查找 ID,并且只从 JSON 数组中输出该 ID 的信息。 JSON 数组中有一个具有相同 ID 的对象。你能帮忙吗?
执行 if 测试该 id 是否与 url
中的 id 一致
$.getJSON('test.json', function(data) {
$.each(data.person, function(i, f) {
if(window.location.href.split('=')[1] == f.ID) {//asumes that you have only the deal as a url param
var tblRow = "<tr>" + "<td>" + f.ID + "</td>" +"<td>" + f.Destination + "</td>" +
"<td>" + f.SupplierName + "</td>" + "</tr>"
$(tblRow).appendTo("#userdata tbody");
}
});
试试这个:
$.each(data.person, function(i, f) {
var param = window.location.href.slice(window.location.href.indexOf('?') +
1).split('=');
var id = param[1];
if (f.id == id){
var tblRow = "<tr>" + "<td>" + f.ID + "</td>" +"<td>" + f.Destination + "
</td>" + "<td>" + f.SupplierName + "</td>" + "</tr>"
$(tblRow).appendTo("#userdata tbody");
}
});
这是我的HTML。
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"> </script>
<script>
$(function() {
var people = [];
$.getJSON('test.json', function(data) {
$.each(data.person, function(i, f) {
var tblRow = "<tr>" + "<td>" + f.ID + "</td>" +"<td>" + f.Destination + "</td>" +
"<td>" + f.SupplierName + "</td>" + "</tr>"
$(tblRow).appendTo("#userdata tbody");
});
});
});
</script>
</head>
<body>
<table id= "userdata" border="2">
<thead>
<th>ID</th>
<th>Destination</th>
<th>SupplierName</th>
</thead>
<tbody>
</tbody>
</table>
</body>
</html>
这是我的 test.json 文件
{
"person" : [
{
"ID" : 100,
"Destination" : "brisbane",
"SupplierName" : "Hilton Brisbane",
},
{
"ID" : 101,
"Destination" : "brisbane",
"SupplierName" : "Hotel Grand Chancellor Brisbane",
},
{
"ID" : 102,
"Destination" : "brisbane",
"SupplierName" : "Park Regis North Quay",
}
]
}
我想做什么
输出工作正常。但这是我正在尝试做的事情。
我的网站看起来像 www.website.com?deal=100
我想在 'deal' 参数的末尾查找 ID,并且只从 JSON 数组中输出该 ID 的信息。 JSON 数组中有一个具有相同 ID 的对象。你能帮忙吗?
执行 if 测试该 id 是否与 url
中的 id 一致 $.getJSON('test.json', function(data) {
$.each(data.person, function(i, f) {
if(window.location.href.split('=')[1] == f.ID) {//asumes that you have only the deal as a url param
var tblRow = "<tr>" + "<td>" + f.ID + "</td>" +"<td>" + f.Destination + "</td>" +
"<td>" + f.SupplierName + "</td>" + "</tr>"
$(tblRow).appendTo("#userdata tbody");
}
});
试试这个:
$.each(data.person, function(i, f) {
var param = window.location.href.slice(window.location.href.indexOf('?') +
1).split('=');
var id = param[1];
if (f.id == id){
var tblRow = "<tr>" + "<td>" + f.ID + "</td>" +"<td>" + f.Destination + "
</td>" + "<td>" + f.SupplierName + "</td>" + "</tr>"
$(tblRow).appendTo("#userdata tbody");
}
});