jquery不工作时调用对象值

jquery不工作时调用对象值,jquery,object,Jquery,Object,我正在尝试使用jquery调用数据对象。我无法用它显示数据。如何在单击锚时仅显示结果标签和kategori 还有什么建议可以简化单击事件来调用对象吗 多谢各位 $(文档).ready(函数(){ var数据=[ { “id”:1, “标签”:“肖恩”, “kategori”:“Produk” }, { “id”:2, “标签”:“霍华德”, “kategori”:“Produk” }, { “id”:3, “标签”:“保罗”, “kategori”:“Produk” }, {

我正在尝试使用jquery调用数据对象。我无法用它显示数据。如何在单击锚时仅显示结果标签和kategori

还有什么建议可以简化单击事件来调用对象吗

多谢各位

$(文档).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,而不是使用名称作为标签,因为我想从对象中获取多个值。很好的解释,谢谢