jquery不工作时调用对象值
我正在尝试使用jquery调用数据对象。我无法用它显示数据。如何在单击锚时仅显示结果标签和kategori 还有什么建议可以简化单击事件来调用对象吗 多谢各位jquery不工作时调用对象值,jquery,object,Jquery,Object,我正在尝试使用jquery调用数据对象。我无法用它显示数据。如何在单击锚时仅显示结果标签和kategori 还有什么建议可以简化单击事件来调用对象吗 多谢各位 $(文档).ready(函数(){ var数据=[ { “id”:1, “标签”:“肖恩”, “kategori”:“Produk” }, { “id”:2, “标签”:“霍华德”, “kategori”:“Produk” }, { “id”:3, “标签”:“保罗”, “kategori”:“Produk” }, {
$(文档).ready(函数(){
var数据=[
{
“id”:1,
“标签”:“肖恩”,
“kategori”:“Produk”
},
{
“id”:2,
“标签”:“霍华德”,
“kategori”:“Produk”
},
{
“id”:3,
“标签”:“保罗”,
“kategori”:“Produk”
},
{
“id”:4,
“标签”:“尤金”,
“kategori”:“单位”
},
{
“id”:5,
“标签”:“约翰尼”,
“kategori”:“单位”
},
{
“id”:6,
“标签”:“Jacqueline”,
“kategori”:“单位”
},
{
“id”:7,
“标签”:“雪莉”,
“kategori”:“Artikel”
},
{
“id”:8,
“标签”:“朱莉娅”,
“kategori”:“项目”
},
{
“id”:9,
“标签”:“拉塞尔”,
“kategori”:“项目”
},
{
“id”:10,
“标签”:“威廉”,
“kategori”:“收藏”
}
];
$('.callProduct')。在('click',函数(e)上{
e、 预防默认值();
var call=$(这个);
var data_target=call.data('target');
var结果=“”;
$.each(数据、函数(索引、值){
var resName=value.label.toString().toLowerCase();
var resCat=value.kategori.toString().toLowerCase();
如果(resName!=''&&data\u target==resCat){
结果+=''+value.label+'-'+value.kategori+' ';
}
});
如果(结果!=''){
$('.resultProduct')。追加(结果);
}
});
$('.callUnit')。在('click',函数(e)上{
e、 预防默认值();
var call=$(这个);
var data_target=call.data('target');
var结果=“”;
$.each(数据、函数(索引、值){
var resName=value.label.toString().toLowerCase();
var resCat=value.kategori.toString().toLowerCase();
如果(resName!=''&&data\u target==resCat){
结果+=''+value.label+'-'+value.kategori+' ';
}
});
如果(结果!=''){
$('.resultProduct')。追加(结果);
}
});
});代码>
你就快到了。您可以通过对象的属性索引(后跟要检索的键)获取调用它的[label]和[kategori]值
在$.each()方法中,可以通过以下方式调用它们:
// In getting the [label] value
var sDataLabel = data[index].label; //Sean, Howard, Paul
// In getting the [kategori] value
var sDataCategory = data[index].kategori; //product
现在你想考虑那些密钥可能不存在的想法,所以你需要检查[Lab]和[KGATORIO]是否存在。您可能需要设置每个对象中是否存在这些键的条件
// Like this:
var data = [{'id' : 10}, {'id' : 11, 'label' : 'Label1', kategori : 'products'}];
var sDataLabel = (data[index].hasOwnProperty('label') === true) ? data[index].label : 'No Label'; // No Label, Label 1
var sDataCategory = (data[index].hasOwnProperty('kategori') === true) ? data[index].kategori : 'No Category'; // No Category, 'products'
当您获得所需的值时,就可以将结果附加到[.resultProduct]DOM中
var resName = sDataLabel.toLowerCase();
var resCat = sDataCategory.toLowerCase();
if (resName != '' && data_target === resCat) {
results += '<li>' + resName + ' - ' + resCat + '</li>';
}
// This should be outside of your $.each method
$('.resultProduct').append(results);
var resName=sDataLabel.toLowerCase();
var resCat=sDataCategory.toLowerCase();
如果(resName!=''&&data\u target===重新扫描){
结果+=''+resName+'-'+resCat+' ';
}
//这应该在$之外。每个方法
$('.resultProduct')。追加(结果);
下面是一个示例JSFIDLE供进一步参考:
希望这对您有所帮助。我还想验证您是否有意放置“kategori”而不是“category”?我有意放置kategori,而不是使用名称作为标签,因为我想从对象中获取多个值。很好的解释,谢谢