私はクリックされた要素のidで塗りつぶす配列selected_filters
を持っています。この配列に従ってif
文を生成する必要があります。私は文字列を生成しようとし、それを実行するためにeval()
を使用しようとしましたが、動作しませんでした。たぶん私は何か間違っているか、声明を出す方法を知っていますか?if文の生成JQuery
文列生成:
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)';
生成された文字列: ($.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)
使用方法:解決策が見つかりました
if(eval(validate)){ //some code }
あなたが "動作しませんでした" とはどういう意味ですか?コードは実行されませんか?何かエラーがありますか? –
コードは常に 'else'条件の中にあります。しかし、私は 'if'に対して' true'である多くのケースを持っています – vladja
私が推奨できるのは、動作が正しくないときに状況を見つけることです。if文if if(eval(validate))を生成条件に置き換え、デバッグ。 –