Есть ли простой способ преобразовать код jquery в javascript? [закрыто]


144

Есть ли простой способ преобразовать код jQuery в обычный javascript? Я думаю, без доступа или понимания исходного кода jQuery.


8
Я был в основном после того, что преобразовало 1 строку jquery в 10 строк vanilla javascript ... для случаев, когда jquery недоступен ...
davidsleeps

1
Даже если вы не можете использовать тег скрипта для включения jQuery, вы всегда можете добавить минифицированную версию к исходному файлу. Я не вижу причин, по которым jQuery будет недоступен, кроме какой-то корпоративной политики.
cdmckay

23
Я также вижу для этого хорошее применение. Допустим, вы используете только 10-100 строк в javascript с jQuery. Это сэкономит полосу пропускания за счет перекомпиляции и замены функций на основные методы и, таким образом, не будет загружать все остальное из jQuery.

5
У меня такой же вопрос. Многие ответили, что jQuery проще, но разработчик, уже знакомый с JavaScript, столкнется с некоторыми проблемами с пониманием символа / аббревиатуры в jQuery. И причина моего вопроса в том, что по какой-то причине сценарий jQuery, который у меня есть, не работает в Blackberry. Это сценарий загрузки Ajax. Думаю, мне нужно перевести это на Javascript :(

1
Я пытаюсь создать JS-кладж внутри существующего приложения, и все встроенные JS-функции приложения ломаются, если я включаю jQuery. Это плохо написанное приложение (JIRA от Atlassian), и я уверен, что они виноваты, но оно мне все равно нужно.
chadoh 01

Ответы:


43

Самый простой способ - просто научиться выполнять обход и манипулирование DOM с помощью простого API-интерфейса DOM (вы, вероятно, назвали бы это: обычный JavaScript).

Однако это может быть проблемой для некоторых вещей. (именно поэтому библиотеки были изобретены в первую очередь).

Поиск в Google по запросу "обход / манипуляции с Javascript DOM" должен предоставить вам множество полезных (и некоторых менее полезных) ресурсов.

Статьи на этом сайте довольно хорошие: http://www.htmlgoodies.com/primers/jsp/

И, как указывает Носредна в комментариях: обязательно протестируйте во всех браузерах, потому что теперь jQuery не будет обрабатывать несоответствия за вас.


4
И обязательно протестируйте разные версии каждого браузера.
Nosredna

1
Как выбор настольной рабочей станции влияет на использование jQuery?
Дэн Дэвис Брэкетт

5
Я симпатизирую политике использования библиотек с открытым исходным кодом для некоторых организаций. В конце концов, время, которое вы тратите на простое (и, вероятно, ошибочное) переписывание в простой обход DOM и JS, является пустой тратой денег для компании. Вы можете утверждать, что крупные компании, в том числе очень консервативные, используют jQuery: docs.jquery.com/Sites_Using_jQuery : Oracle, Google, Amazon, Dell, Bank of America, Intuit, Salesforce. Вряд ли это коммунистические хиппи-компании. Это вполне реальные компании, чьи юридические отделы, вероятно, сделали свою домашнюю работу и приняли jQuery ...
artlung

2
@davidsleeps - jQuery санкционирован Microsoft ... Он включен в Visual Studio 2008, что технически делает его инструментом Microsoft. Будет ли это лучше для вашего работодателя?
Роберт Харви

4
В чем разница для вашей компании между jquery и целой кучей javascript, которую вы написали для того же? Это не значит, что вы что-то устанавливаете, кодируете на новом языке или добавляете ЛЮБЫЕ зависимости. Честно говоря, это самая глупая вещь, которую я слышал, - разрешить javascript, но не jQuery. jQuery - ЭТО JAVASCRIPT!
micmcg

63

Это поможет вам пройти 90% пути; )

window.$ = document.querySelectorAll.bind(document)

Для Ajax Fetch API теперь поддерживается в текущей версии всех основных браузеров . Для $.ready(), DOMContentLoadedимеет практически всеобщую поддержку . Возможно, вам не понадобится jQuery предоставляет эквивалентные собственные методы для других распространенных функций jQuery.

Zepto предлагает аналогичную функциональность, но весит 10 КБ. Существуют пользовательские сборки Ajax для jQuery и Zepto, а также некоторые микро-фреймворки , но jQuery / Zepto имеют надежную поддержку, а 10 КБ - это всего лишь ~ 1 секунда на модеме 56 КБ.


25

Я только что нашел этот довольно впечатляющий учебник по преобразованию jquery в javascript от Джеффри Уэй 19 января 2012 года *Copyright © 2014 Envato* :

http://net.tutsplus.com/tutorials/javascript-ajax/from-jquery-to-javascript-a-reference/

Нравится нам это или нет, но все больше и больше разработчиков сначала знакомятся с миром JavaScript через jQuery. Во многом этим новичкам повезло. У них есть доступ к множеству новых API-интерфейсов JavaScript, которые значительно упрощают процесс обхода DOM (от чего многие зависят от jQuery). К сожалению, они не знают об этих API!

В этой статье мы рассмотрим множество распространенных задач jQuery и преобразуем их как в современный, так и в устаревший JavaScript.

Я предложил это в комментарии к OP, и после его предложения я публикую, что у него есть ответ, на который все могут сослаться.

Кроме того, Джеффри Уэй упомянул о своей вдохновляющей ведьме, которая, кажется, является хорошим учебником для понимания: http://sharedfil.es/js-48hIfQE4XK.html

В этом документе есть тизер, в котором сравниваются jQuery и javascript:

$(document).ready(function() {
  // code…
});

document.addEventListener("DOMContentLoaded", function() {
  // code…
});

$("a").click(function() {
  // code…
})

[].forEach.call(document.querySelectorAll("a"), function(el) {
  el.addEventListener("click", function() {
    // code…
  });
});

Вы должны посмотреть.


6

Есть ли простой способ преобразовать код jQuery в обычный javascript?

Нет, особенно если:

разобраться в примерах решений javascript, написанных на jQuery [], сложно.

JQuery и все фреймворки, как правило, упрощают понимание кода. Если это сложно понять, то ванильный javascript будет пыткой :)


16
у других есть актуальные ответы
ftrotter

2
Кроме того , хотя JQuery делает код более кратким (обычно), это спорно ли он на самом деле делает его легче . jQuery может усложнить мысленный анализ кода. Например, <input onclick="myfunction(this)">с myfunction(field){ field.value = "3"; }разумнее меня , чем <input id='thing'>с(function ($) { $(thing).click({ $(thing).val("3");});})()
liljoshu

6

Я вижу причину, не имеющую отношения к исходному сообщению, для автоматической компиляции кода jQuery в стандартный JavaScript:

16k - или что-то еще, сжатая сжатая, миниатюрная библиотека jQuery - может быть слишком много для вашего веб-сайта, предназначенного для мобильного браузера. W3C рекомендует, чтобы все HTTP-запросы для мобильных веб-сайтов не превышали 20 КБ.

w3c спецификации для мобильных

Так что мне нравится писать код в моем красивом, кратком, связанном jQuery. Но теперь мне нужно оптимизировать для мобильных устройств. Стоит ли мне действительно вернуться и проделать сложную и утомительную работу по переписыванию всех вспомогательных функций, которые я использовал в библиотеке jQuery? Или есть какое-то удобное приложение, которое поможет перекомпилировать?

Это было бы очень мило. К сожалению, я не думаю, что такое существует.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.