Чи є простий спосіб перетворити код jquery в JavaScript? [зачинено]


142

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


8
я був в основному після чогось, що перетворив рядок 1 jquery в 10 ліній JavaScript ванілі ... для випадків, коли jquery недоступний ...
davidsleeps

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

23
Я можу бачити і користь для цього. Напрошу, ви використовуєте лише близько 10-100 рядків у JavaScript з jQuery. Це дозволило б заощадити пропускну здатність, перекомпілювавши та замінивши функції основними методами, і, таким чином, не завантажувати все інше з jQuery.

5
У мене те саме питання. Багато хто відповів, що jQuery простіший, але у розробника, який уже ознайомився з JavaScript, виникнуть деякі проблеми з розумінням символу / абревіатури в jQuery. І моя причина просити, чомусь сценарій jQuery, який я отримав, не працюватиме в Blackberry. Це сценарій завантаження Ajax. Тому я думаю, що мені потрібно перекласти його на Javascript :(

1
Я намагаюся зробити JS-kludge всередині наявного додатка, і всі вбудовані функції JS програми перерваються, якщо я включаю jQuery. Це погано написане додаток (JIRA Atlassian), і я впевнений, що вони винні, але мені це потрібно саме так.
чадо

Відповіді:


41

Найпростіший спосіб - просто дізнатися, як робити обхід та маніпуляції з DOM за допомогою простого api DOM (ви, мабуть, це назвали б: звичайний JavaScript).

Однак це може бути болем для деяких речей. (саме тому бібліотеки були винайдені в першу чергу).

Гуглінг для "обходу / маніпулювання javascript DOM" повинен надавати вам безліч корисних (і деяких менш корисних) ресурсів.

Статті на цьому веб-сайті досить хороші: http://www.htmlgoodies.com/primers/jsp/

І як в коментарях зазначає Носредна: не забудьте протестувати в усіх браузерах, адже тепер jQuery не вирішить вас.


4
І ви повинні бути впевнені, щоб перевірити різні версії кожного браузера.
Nosredna

1
Як вибір робочої станції на робочому столі впливає на використання jQuery?
Dan Davies Brackett

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 IS JAVASCRIPT!
micmcg

60

Це дозволить отримати 90% шляху туди; )

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

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

Zepto пропонує аналогічну функціональність, але важить в 10 К блискавці. Існують спеціальні версії Ajax для jQuery та Zepto, а також деякі мікрокадри , але jQuery / Zepto мають суцільну підтримку, і 10 КБ - це лише 1 секунда на 56K-модемі.


22

Щойно я знайшов цей досить вражаючий підручник про перетворення jquery в javascript від Джефрі Уейна 19 січня 2012 року *Copyright © 2014 Envato* :

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

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

У цій статті ми візьмемо різні поширені завдання jQuery та перетворимо їх на сучасні та застарілі JavaScript.

Я запропонував це у коментарі до ОП, і після його пропозиції, я публікую, у ньому є відповідь, на яку всі мають звернутися.

Крім того, Джеффрі Вейс згадував про свою відьму натхнення, здається, хорошим букварем для розуміння: 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…
  });
});

Слід поглянути.


12

Я знаю, що це старий потік, але є чудовий ресурс, що показує рідний JavaScript, еквівалентний jquery, він навіть включає приклади ES6. Це найвичерпніший з моїх статей, що висвітлюють цю тему.

jQuery до Vanilla JS


6

Чи є простий спосіб перетворити код jQuery в звичайний javascript?

Ні, особливо якщо:

розуміння прикладів рішень JavaScript, написаних у jQuery [важко].

JQuery та всі рамки, як правило, полегшують розуміння коду. Якщо це важко зрозуміти, тоді ванільний javascript буде катуванням :)


15
інші мають актуальні відповіді
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 - або все, що є gzipped, мінімізована бібліотека jQuery - може бути занадто багато для вашого веб-сайту, призначеного для мобільного браузера. W3c рекомендує, щоб усі HTTP-запити для мобільних веб-сайтів становили максимум 20 кк.

специфікації w3c для мобільних пристроїв

Тож мені подобається кодування в моєму приємному, короткому, прикованому jQuery. Але зараз мені потрібно оптимізувати мобільний телефон. Чи варто насправді повертатися назад і робити важку, виснажливу роботу з переписування всіх помічних функцій, які я використовував у бібліотеці jQuery? Або є якийсь зручний додаток, який допоможе мені перекомпілювати?

Це було б дуже мило. На жаль, я не думаю, що таке існує.


6

1

Книга Джеремі Кіта " Сценарій DOM " - це чудове вступ до роботи з Javascript та DOM. Я дуже рекомендую, хочете ви користуватися jQuery чи ні. Добре знати, що відбувається внизу.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.