2016-07-28 3 views
0

Я могу просто бороться с jquery, javascript меньше так.javascript для jQuery или наоборот

У меня есть небольшая функция, написанная на javascript, но мне нужно сменить селектор. У меня не было бы проблем с этим в jquery, но я делаю это в js.

Мне нужна помощь: преобразование моего селектора в его эквивалент js или преобразование функции целиком в jquery (как только четыре строки кода).

function findNextTabStop() { 

    // This is the current selector 
    var universe = document.querySelectorAll("input"); 

    // In jQuery, the NEW selector would look like this 
    $universe = $(this).closest(".form").find(".input-wrapper input, .input-wrapper select, .input-wrapper textarea"); 

    var list = Array.prototype.filter.call(universe, 
     function (item) { 
      return item.tabIndex >= "0" 
     }); 

    var index = list.indexOf(this); 

    return list[index + 1] || list[0]; 
} 
+0

Можете ли вы объяснить, что вы пытаетесь достичь? Также поделитесь некоторым примером HTML – Rajesh

+0

Это часть формы - форма содержит различные типы ввода, но каждый из них всегда находится внутри DIV (.input-wrapper). Когда нажата клавиша ввода при фокусировке на входе, эта функция запускается - она ​​просматривает все входы, находит индекс текущего входа, получает следующий, где в конечном итоге применяется фокус. –

+0

И теперь вы хотите унифицировать способ доступа к элементам. Правильно? Почему бы не передать '$ universe' в фильтр или даже попытаться использовать' $ .filter' – Rajesh

ответ

0

После недолгого копания и тестирования, это то, что я придумал

function findNextTabStop() { 

    $el = $(this).closest(".input-step").find(inputs); 
    var index = $el.index(this); 
    return $el[index + 1] || $el[0]; 
} 
Смежные вопросы