#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