2014-06-05 6 views
2

J'utilise les modules externes Jquery Dropdown et ListJS.Travailler avec des objets

Le plugin jQuery Dropdown propose un événement hide:

$('.dropdown').on('hide', function(event, dropdownData) { 
}); 

Dans cette fonction, je suis en utilisant l'option de filtre du plug-in ListJS (donc lors de la fermeture de la liste déroulante une liste est filtrée):

$('.dropdown').on('hide', function(event, dropdownData) { 
    hackerList.filter(function(item) { 
    if (item.values().Produkt == "Cola") { 
     return true; 
    } else { 
     return false; 
} 
    }); 
}); 

Ce code fonctionne comme il se doit.

Le problème est:

Je voudrais utiliser une variable Object value ("Produkt" dans ce cas est une valeur d'objet):

if (item.values().Produkt == "Cola") { 

Comment puis-je changer le "Produkt" en une variable?

Lorsque vous utilisez simplement item.values().MyVar, cela ne fonctionne pas.

+0

Essayez d'utiliser item.values ​​() [ MyVar] et devrait fonctionner correctement. –

Répondre

0

pour accéder à une variable, utilisez bracket notation:

var myVar = "test"; 
console.log(yourObject[myVar]); //equivalent to yourObject.test 

donc dans votre cas faire:

var myVar = "Product"; 
$('.dropdown').on('hide', function(event, dropdownData) { 
    hackerList.filter(function(item) { 
     if (item.values()[myVar] == "Cola") { 
      return true; 
     } else { 
      return false; 
     } 
    }); 
}); 
0

Essayez ceci,

eval ("$('.dropdown').on('hide', function(event, dropdownData) {" 
    + "hackerList.filter(function(item) {" 
     +" if (item.values()." +Produkt+ " == 'Cola') {" 
     +"return true;" 
     +"} else {" 
    +"return false;" 
    +"} }); });"); 
+0

Vous avez mal compris la question, s'il vous plaît relire. –

+1

utilisez if (item.values ​​() [nomdevariable] == "Cola") à la place – Gabe

+0

Merci @Gabe! C'est la réponse que j'ai recherchée. – Biberwerke