2016-08-29 2 views
-2

Я пытаюсь преобразовать небольшой скрипт jquery в чистый javascript. Каков наилучший способ сделать это? Я продолжаю получать ошибку «$ (this) не определена».Преобразование jquery в javascript для localstorage

var lastTab = localStorage.getItem('lastTab'); 
if (lastTab) { 
    $('a[href="'+lastTab+'"]').click(); 
} 

ответ

2

Вы можете легко преобразовать фрагмент в простой JS. Но имейте в виду, что это не сработает, если прослушиватель событий click зарегистрирован в jQuery, потому что вы не можете запускать прослушиватели событий, созданные с помощью jQuery на vanilla JS. Причина в том, что jQuery использует собственную реализацию событий.

Для преобразования вашего фрагмента вам понадобится querySelectorAll, чтобы выбрать все его элементы: href, а затем закодировать найденные элементы для выполнения click.

var lastTab = localStorage.getItem('lastTab'); 

if(lastTab) { 
    // get all elements by href 
    var elements = document.querySelectorAll("a[href='" + lastTab + "']"); 

    // loop all elements because it could be more than one found 
    for(var i = 0, l = elements.length; i < l; i++) { 
     elements[i].click(); 
    } 
} 

Fully working example.
(размещен на jsfiddle, потому что SO не позволяют использование localStorage)

Смежные вопросы