document.querySelectorAll()
ব্রাউজারগুলির জুড়ে বেশ কয়েকটি অসঙ্গতি রয়েছে এবং পুরানো ব্রাউজারগুলিতে এটি সমর্থন করে না এটি আজকাল আর সম্ভবত কোনও সমস্যায় ফেলবে না । এটির একটি খুব অবিস্মরণীয় স্কোপিং মেকানিজম এবং অন্য কিছু এত সুন্দর বৈশিষ্ট্য নেই । জাভাস্ক্রিপ্টের সাহায্যে আপনার এই ক্যোয়ারির ফলাফল সেটগুলির সাথে কাজ করা আরও কঠিন সময় যা আপনি অনেক ক্ষেত্রেই করতে চাইতে পারেন। : jQuery মত তাদের উপর কাজ ফাংশন প্রদান করে filter()
, find()
, children()
, parent()
, map()
, not()
এবং বেশ কিছু আরও অনেক কিছু। সিউডো-বর্গ নির্বাচনকারীদের সাথে কাজ করার jQuery ক্ষমতা উল্লেখ না করা।
যাইহোক, আমি এই বিষয়গুলিকে jQuery এর শক্তিশালী বৈশিষ্ট্য হিসাবে বিবেচনা করব না তবে ক্রোস ব্রাউজারের সামঞ্জস্যপূর্ণ উপায়ে বা এজাক্স ইন্টারফেসে ডোম (ইভেন্টস, স্টাইলিং, অ্যানিমেশন এবং ম্যানিপুলেশন) হিসাবে "কাজ করা" এর মতো অন্যান্য বিষয়গুলি বিবেচনা করব না ।
আপনি যদি কেবল jQuery থেকে নির্বাচক ইঞ্জিন চান তবে আপনি যে jQuery নিজেই ব্যবহার করছেন তা ব্যবহার করতে পারেন : সিজল সেভাবে আপনার বাজে ওভারহেড ছাড়াই jQuerys সিলেক্টর ইঞ্জিনের শক্তি রয়েছে।
সম্পাদনা: কেবল রেকর্ডের জন্য, আমি একটি বিশাল ভ্যানিলা জাভাস্ক্রিপ্ট ফ্যান। তবুও এটি একটি সত্য যে আপনার মাঝে মাঝে জাভাস্ক্রিপ্টের 10 লাইন প্রয়োজন যেখানে আপনি 1 লাইন jQuery লিখবেন।
অবশ্যই আপনাকে এই জাতীয় jQuery না লিখতে শৃঙ্খলাবদ্ধ হতে হবে:
$('ul.first').find('.foo').css('background-color', 'red').end().find('.bar').css('background-color', 'green').end();
এটি পড়তে চূড়ান্ত, যদিও দ্বিতীয়টি বেশ পরিষ্কার:
$('ul.first')
.find('.foo')
.css('background-color', 'red')
.end()
.find('.bar')
.css('background-color', 'green')
.end();
সমতুল্য জাভাস্ক্রিপ্ট উপরের সিউডোকোড দ্বারা চিত্রিত আরও জটিল হবে:
1) উপাদানটি সন্ধান করুন, সমস্ত উপাদান বা শুধুমাত্র প্রথম গ্রহণ বিবেচনা করুন।
// $('ul.first')
// taking querySelectorAll has to be considered
var e = document.querySelector("ul.first");
2) কয়েকটি (সম্ভবত নেস্টেড বা পুনরুক্তিযোগ্য) লুপগুলির মাধ্যমে শিশু নোডের অ্যারের উপরে আইট্রেট করুন এবং ক্লাসটি পরীক্ষা করুন (সমস্ত ব্রাউজারে শ্রেণি তালিকা উপলব্ধ নেই!)
//.find('.foo')
for (var i = 0;i<e.length;i++){
// older browser don't have element.classList -> even more complex
e[i].children.classList.contains('foo');
// do some more magic stuff here
}
3) সিএসএস স্টাইল প্রয়োগ করুন
// .css('background-color', 'green')
// note different notation
element.style.backgroundColor = "green" // or
element.style["background-color"] = "green"
এই কোডটি আপনি jQuery দিয়ে লিখেছেন এমন কোডের লাইন কমপক্ষে দ্বিগুণ হবে। এছাড়াও আপনাকে ক্রস ব্রাউজার সম্পর্কিত বিষয়গুলি বিবেচনা করতে হবে যা নেটিভ কোডের তীব্র গতির সুবিধা (নির্ভরযোগ্যতা ছাড়াও) আপস করবে ।
querySelector
পদ্ধতিগুলিতে কাজ করবে না । (3) এজেএক্স কল করা jQuery এর সাথে অনেক দ্রুত এবং সহজ। (4) আই 6 + এ সমর্থন। আমি নিশ্চিত যে আরও অনেক পয়েন্ট রয়েছে যেগুলিও তৈরি করা যেতে পারে।