2014-10-19 3 views
0

Я новичок в JQuery и имею эту функцию:Как сохранить возвращаемое значение функции в переменной?

var numberOfItems = function() { 
    $('.item_fields input[type="hidden"]').filter(function() { 
    return $.trim($(this).val()) == 'false'; 
    }).length; 
} 

Когда я называю его alert(numberOfItems);, а не выводить целое число это выводит из функции кода сам:

function() { 
    $('.item_fields input[type="hidden"]').filter(function() { 
    return $.trim($(this).val()) == 'false'; 
    }).length; 
} 

Я предполагаю, что я должен не хватает чего-то действительно фундаментального здесь?

Спасибо за любую помощь.

+1

вам не нужно обернуть его в __FUNCTION__, вам нужно просто 'вар numberOfItems = $ ('. item_fields input [type = "hidden"]'). filter (function() { return $ .trim ($ (this) .val()) == 'false'; }). length; ' – Grundy

ответ

1
  1. Ваша функция не возвращает ничего, если вы положили return в начале последнего (только в этом случае) заявление.

  2. Необходимо, чтобы вызывал функцию, чтобы получить ее возвращаемое значение. numberOfItems просто «упоминает» функцию; его значение является объектом функции. numberOfItems() вызывает функцию. () - оператор, вызывающий функцию с аргументами.

1

Вернуть значение из функции:

var numberOfItems = function() { 
    return $('.item_fields input[type="hidden"]').filter(function() { 
    return $.trim($(this).val()) == 'false'; 
    }).length; 
}; 

Затем вызовите функцию следующим образом:

alert(numberOfItems()); 
Смежные вопросы