มีวิธีง่าย ๆ ในการแปลงรหัส jquery เป็น javascript หรือไม่ [ปิด]


142

มีวิธีง่าย ๆ ในการแปลงรหัส jQuery เป็น javascript ปกติหรือไม่ ฉันเดาโดยไม่ต้องเข้าถึงหรือเข้าใจซอร์สโค้ด jQuery


8
ฉันเป็นพื้นหลังบางสิ่งบางอย่างที่ไม่ได้แปลงสาย 1 jQuery เป็น 10 วานิลลาสายจาวาสคริปต์ ... สำหรับกรณีเมื่อ 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 ทั้งหมดของ inbuilt ของตัวแบ่งแอพถ้าฉันรวม jQuery มันเป็นแอพที่เขียนได้ไม่ดี (JIRA ของ Atlassian) และฉันแน่ใจว่าพวกเขาจะโทษ แต่ฉันต้องการสิ่งนี้เหมือนกัน
chadoh

คำตอบ:


41

วิธีที่ง่ายที่สุดคือเรียนรู้วิธีการสำรวจและจัดการ DOM ด้วย DOM ธรรมดา (คุณอาจเรียกสิ่งนี้ว่า: JavaScript ปกติ)

อย่างไรก็ตามนี่อาจเป็นความเจ็บปวดสำหรับบางสิ่ง (ซึ่งเป็นสาเหตุที่ห้องสมุดถูกประดิษฐ์ขึ้นตั้งแต่แรก)

Googling สำหรับ "javascript DOM traversing / manipulation" ควรแสดงให้คุณเห็นว่ามีทรัพยากรที่มีประโยชน์ (และมีประโยชน์น้อยกว่า) มากมาย

บทความในเว็บไซต์นี้จะสวยดีhttp://www.htmlgoodies.com/primers/jsp/

และดังที่ Nosredna ชี้ให้เห็นในความคิดเห็น: อย่าลืมทดสอบในเบราว์เซอร์ทั้งหมดเพราะตอนนี้ 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" นั่นจะทำให้นายจ้างของคุณรู้สึกดีขึ้นหรือไม่?
Robert Harvey

4
บริษัท ของคุณมีความแตกต่างระหว่าง jquery และ javascript ทั้งกลุ่มที่คุณเขียนให้ทำในสิ่งเดียวกัน ไม่เหมือนที่คุณกำลังติดตั้งอะไรเขียนโค้ดในภาษาใหม่หรือเพิ่มการพึ่งพาใด ๆ นี่คือสิ่งที่โง่ที่สุดที่ฉันเคยได้ยินอย่างตรงไปตรงมาการอนุญาต javascript แต่ไม่ใช่ jQuery jQuery คือ JAVASCRIPT!
micmcg

60

คุณจะได้ 90% จากที่นั่น )

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

สำหรับ Ajax ตอนนี้Fetch API ได้รับการสนับสนุนในเวอร์ชันปัจจุบันของเบราว์เซอร์หลักทุกตัว สำหรับ$.ready(), DOMContentLoadedมีการสนับสนุนสากลที่อยู่ใกล้กับ คุณอาจไม่ต้องการ jQueryให้วิธีการดั้งเดิมที่เทียบเท่ากับฟังก์ชั่น jQuery ทั่วไปอื่น ๆ

Zeptoนำเสนอฟังก์ชั่นที่คล้ายกัน แต่มีน้ำหนัก 10K ซิป มี Ajax แบบกำหนดเองที่สร้างขึ้นสำหรับ jQuery และ Zepto เช่นเดียวกับเฟรมเวิร์กขนาดเล็กบางส่วนแต่ jQuery / Zepto มีการสนับสนุนที่แน่นหนาและ 10KB เป็นเพียง ~ 1 วินาทีบนโมเด็ม 56K


22

ฉันเพิ่งพบแบบฝึกหัดที่น่าประทับใจเกี่ยวกับการแปลง jQuery เป็น javascript จาก Jeffrey Way เมื่อวันที่ 19 มกราคม 2012 *Copyright © 2014 Envato* :

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

ไม่ว่าเราจะชอบหรือไม่นักพัฒนามากขึ้นจะถูกนำเข้าสู่โลกของ JavaScript ผ่าน jQuery ก่อน ในหลาย ๆ ทางผู้มาใหม่เหล่านี้เป็นผู้โชคดี พวกเขาสามารถเข้าถึง JavaScript API ใหม่ที่มีมากมายซึ่งทำให้กระบวนการสำรวจเส้นทาง 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…
  });
});

คุณควรดู


12

ฉันรู้ว่านี่เป็นเธรดเก่า แต่มีทรัพยากรที่ยอดเยี่ยมที่แสดงจาวาสคริปต์ดั้งเดิมที่เทียบเท่ากับ jquery มันยังรวมถึงตัวอย่าง ES6 นี่เป็นบทความที่ครอบคลุมมากที่สุดที่ฉันได้ค้นพบจากบทความอื่น ๆ ที่ครอบคลุมหัวข้อนี้

jQuery ถึง Vanilla JS


6

มีวิธีง่าย ๆ ในการแปลงรหัส jQuery เป็น javascript ปกติหรือไม่

ไม่โดยเฉพาะถ้า:

การทำความเข้าใจกับตัวอย่างของโซลูชั่น javascript ที่เขียนด้วย jQuery [is] hard

JQuery และเฟรมเวิร์กทั้งหมดมีแนวโน้มที่จะทำให้เข้าใจโค้ดได้ง่ายขึ้น หากเข้าใจยากวานิลลาจาวาสคริปต์จะถูกทรมาน :)


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 - หรืออะไรก็ตามที่ห้องสมุด jQuery ขนาดย่อส่วน gzipped นั้นอาจจะมากเกินไปสำหรับเว็บไซต์ของคุณที่มีไว้สำหรับเบราว์เซอร์มือถือ w3c ขอแนะนำว่าคำขอ HTTP ทั้งหมดสำหรับเว็บไซต์มือถือควรมีขนาดไม่เกิน 20k

รายละเอียด w3c สำหรับมือถือ

ดังนั้นฉันจึงสนุกกับการเขียนโค้ดใน jQuery ที่ดีสั้น ๆ ถูกล่ามโซ่ แต่ตอนนี้ฉันต้องการเพิ่มประสิทธิภาพสำหรับมือถือ ฉันควรจะกลับไปทำงานเขียนเรื่องผู้ช่วยที่ฉันใช้ในห้องสมุด jQuery หรือไม่ หรือมีแอพสะดวก ๆ ที่จะช่วยให้ฉันคอมไพล์ใหม่ได้ไหม?

นั่นจะหวานมาก น่าเศร้าที่ฉันไม่คิดว่าสิ่งนั้นจะมีอยู่จริง


6

1

หนังสือของ Jeremy Keith " DOM Scripting " เป็นคำแนะนำที่ยอดเยี่ยมสำหรับการทำงานกับ Javascript และ DOM ฉันขอแนะนำว่าคุณต้องการใช้ jQuery หรือไม่ มันเป็นการดีที่จะรู้ว่าเกิดอะไรขึ้นข้างใต้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.