Изменение .каждый jQuery в toArray()

#javascript #jquery

#javascript #jquery

Вопрос:

Я хочу изменить .each решение на toArray() . Дело в том, что мне нужно создать 2 похожие функции, которые используют одно и то же .each решение, поэтому, чтобы ускорить его, я хочу создать еще одну с toArray() и просто реализовать ее внутри двух других.

Моя функция:

 function inputValidator() {
                      $(' input').each(function() {
                       var element = $(this);
                       if (!element.val() == "") {
                            element.closest('.my_item').removeClass('error');
                           
                         }
                        if (!reg.test(element.val())) {
                             element.closest('.my_item').addClass('error');                                            
                        }   
                      });
  

Другая функция очень похожа и имеет то же самое:

 $(' input').each(function() {
  var element = $(this);
  

Итак, чтобы ускорить его, я хотел бы поместить его в array, но понятия не имею, как это реализовать. Я попробовал решение с

 var inputs = $( "input" ).toArray()
  

но все, что я получаю, это ввод ошибок «.toArray — это не функция «.

Вот код, как я реализовал его с другой функцией:

 function common_inputs() {
                var inputs = $(' input').toArray();
                
                    var element = $(this);
                    if (!element.val() == "") {
                        element.closest('.my_item').removeClass('error');
                    }
                    if ( !reg.test(element.val())) {
                        element.closest('.my_item').addClass('error');                                            
                    }   
            
        }             
            
            function inputValidator2() {
                    common_inputs()
                    var element = $(this);
                    if (element.val() == "") {
                        element.closest('.my_item').addClass('error');
                    }                                               
            }          
  

У кого-нибудь есть идея, как это реализовать?

Комментарии:

1. вы включили jQuery ?

2. inputs в показанном коде уже есть массив. Используете ли вы toArray() более одного раза?

3. если вас интересует простой js, вы можете написать: document. querySelectorAll(‘ввод’). forEach(функция(элемент) {…..

4. @gaetanoM да, я сделал, и я боюсь, что мне нужно это с помощью jQuery

5. toArray() здесь все работает нормально jsfiddle.net/c5wby9nm/1