2016-07-21 3 views
0
$('input').each(function(){ 
     if(!$(this).val()){ 
      require($(this)); 
     } 
    }); 

    function require(that){ 
     console('Please fill in ' + $(that).data('validate-msg') + '.'); 
    } 

Выше кода не будет работать, могу ли я узнать, как передать $(this) другой функции?

Но без функции он работал как этот

$('input').each(function(){ 
      if(!$(this).val()){ 
       console('Please fill in ' + $(this).data('validate-msg') + '.'); 
      } 
     }); 
+2

typo: 'console()' не является функцией – CapitanFindus

+1

Можете ли вы пояснить, что «не сработает» - вы видите какие-либо ошибки в журнале и т. Д.? Предполагая, что 'console' - ваша собственная функция (и вы говорите, что она работает во втором примере), кажется, что в первом нет ничего естественного. –

ответ

-2

$ (это) будет объект, так что вы можете присвоить его переменной

$('input').each(function(){ 

    var $input = $(this); 

    if(!$input.val()){ 
     require($input); 
    } 

}); 

function require($input){ 
    console.log('Please fill in ' + $input.data('validate-msg') + '.'); 
} 
+0

Хм. И почему? – eisbehr

+0

Возможно, потому что это был вопрос: как передать $ (это) другой функции? Однако это также сработало бы that.data ('validate-msg') – pszaba

0

Попробуйте этот код

$('input').each(function(){ 
     self = $(this) 

     if(!self.val()){ 
      require(self); 
     } 
    }); 

    function require(that){ 
     console.log('Please fill in ' +that.data('validate-msg') + '.'); 
    } 
+0

Со всеми комментариями и ответами и сведениями о 'console.log', и вы по-прежнему предлагаете попробовать' console ('...'). '?! –

+0

@AlonEitan OP утверждает, что второй пример работает, поэтому нужно взять их на свое слово и предположить, что у них есть функция под названием 'console'. –

+0

Ну, я не ответил на ваш ответ, но, по крайней мере, упомянул бы о перезаписывании объекта «console» и, во-первых, это плохая идея (хотя я уверен, что они означают 'console.log()' во-первых, так или иначе) –