Return 使用 jQuery CSV 的对象子集
Return subset of object using jQuery CSV
我正在使用 jQuery CSV 来解析我的网络服务器上的 .csv 文件。我已经使用带有附加字段(通用名称、资本、国家代码等)的国家/地区列表的演示文件进行了工作。
从那里开始,我正在使用此处找到的查找函数:Jquery how to find an Object by attribute in an Array 到 return 匹配已解析文件中的对象。
到目前为止,这是我的代码:
jQuery(document).ready(function($){
$.ajax({
type: "GET",
url: "path/countrylist.csv",
dataType: "text",
success: function(data) {
var data = $.csv.toObjects(data);
console.log(data);
var country = lookup(data, "Common Name", "Albania");
$.each(country, function(i, val) {
$("#albania").append(i + ": " + val + "<br/>");
});
});
});
这个 return 是我在 div 中显示的 'Albania' 对象,id 为“#albania”:
Sort Order: 2
Common Name: Albania
Formal Name: Republic of Albania
Type: Independent State
Sub Type:
Sovereignty:
Capital: Tirana
ISO 4217 Currency Code: ALL
ISO 4217 Currency Name: Lek
ITU-T Telephone Code: 355
ISO 3166-1 2 Letter Code: AL
ISO 3166-1 3 Letter Code: ALB
ISO 3166-1 Number: 8
IANA Country Code TLD: .al
卡住的地方是我想显示来自国家/地区对象的此数据的子集。例如,我只想显示通用名称、首都和国家代码。
假设这些 keys/header 行对于每个国家/地区都是相同的,我如何才能只显示这些值? jQuery .slice() 不起作用,可能是因为这是一个对象而不是数组(?)。
我可以select key/header 行名的子集吗?这可能是另一种选择,因为它们不会改变。
已解决。我需要使用 $.each() 和点符号来定位对象中的特定键。
这是我的工作代码,它只获取通用名称和首都,然后将其附加到 div 和国家名称的 ID:
$.each( data, function( i, v ) {
var name = v.Common_Name.toLowerCase();
var country = v.Common_Name;
var capital = v.Capital;
$("#" + name).append(
"Name" + ": " + country + "<br/>"
+ "Capital" + ": " + capital + "<br/>"
);
});
我的html:
<div class="countries clearfix">
<div id="afghanistan" class="country"></div>
<div id="albania" class="country"></div>
<div id="algeria" class="country"></div>
<div id="andorra" class="country"></div>
</div>
结果:
Name: Afghanistan
Capital: Kabul
Name: Albania
Capital: Tirana
Name: Algeria
Capital: Algiers
Name: Andorra
Capital: Andorra la Vella
我正在使用 jQuery CSV 来解析我的网络服务器上的 .csv 文件。我已经使用带有附加字段(通用名称、资本、国家代码等)的国家/地区列表的演示文件进行了工作。
从那里开始,我正在使用此处找到的查找函数:Jquery how to find an Object by attribute in an Array 到 return 匹配已解析文件中的对象。
到目前为止,这是我的代码:
jQuery(document).ready(function($){
$.ajax({
type: "GET",
url: "path/countrylist.csv",
dataType: "text",
success: function(data) {
var data = $.csv.toObjects(data);
console.log(data);
var country = lookup(data, "Common Name", "Albania");
$.each(country, function(i, val) {
$("#albania").append(i + ": " + val + "<br/>");
});
});
});
这个 return 是我在 div 中显示的 'Albania' 对象,id 为“#albania”:
Sort Order: 2
Common Name: Albania
Formal Name: Republic of Albania
Type: Independent State
Sub Type:
Sovereignty:
Capital: Tirana
ISO 4217 Currency Code: ALL
ISO 4217 Currency Name: Lek
ITU-T Telephone Code: 355
ISO 3166-1 2 Letter Code: AL
ISO 3166-1 3 Letter Code: ALB
ISO 3166-1 Number: 8
IANA Country Code TLD: .al
卡住的地方是我想显示来自国家/地区对象的此数据的子集。例如,我只想显示通用名称、首都和国家代码。
假设这些 keys/header 行对于每个国家/地区都是相同的,我如何才能只显示这些值? jQuery .slice() 不起作用,可能是因为这是一个对象而不是数组(?)。
我可以select key/header 行名的子集吗?这可能是另一种选择,因为它们不会改变。
已解决。我需要使用 $.each() 和点符号来定位对象中的特定键。
这是我的工作代码,它只获取通用名称和首都,然后将其附加到 div 和国家名称的 ID:
$.each( data, function( i, v ) {
var name = v.Common_Name.toLowerCase();
var country = v.Common_Name;
var capital = v.Capital;
$("#" + name).append(
"Name" + ": " + country + "<br/>"
+ "Capital" + ": " + capital + "<br/>"
);
});
我的html:
<div class="countries clearfix">
<div id="afghanistan" class="country"></div>
<div id="albania" class="country"></div>
<div id="algeria" class="country"></div>
<div id="andorra" class="country"></div>
</div>
结果:
Name: Afghanistan
Capital: Kabul
Name: Albania
Capital: Tirana
Name: Algeria
Capital: Algiers
Name: Andorra
Capital: Andorra la Vella