I have an array selected_filters which I fill with id of clicked element. I need to generate an if statement according to this array. I tried to generate string and then use eval() to execute it, but didn't work. Maybe I'm doing something wrong or do you have any ideas how to generate statement?
Statement string generation:
var selected_filters = [filter_by_color,filter_by_transmissivity];
$.each(selected_filters, function(k, v){
validate += '($.inArray(t.data(' + v + '),filters_obj[' + v + ']) > -1 || obj_l == emptyFilters) && ';
});
validate += '(search.contains(filters_obj.search) || filters_obj.search.length === 0)';
Generated string: ($.inArray(t.data(filter_by_color),filters_obj[filter_by_color]) > -1 || obj_l == emptyFilters) && ($.inArray(t.data(filter_by_transmissivity),filters_obj[filter_by_transmissivity]) > -1 || obj_l == emptyFilters) && (search.contains(filters_obj.search) || filters_obj.search.length === 0)
Usage:
if(eval(validate)){ //some code }
Aucun commentaire:
Enregistrer un commentaire