আমি এইচটিএমএল মার্কআপে সমস্ত ডিভগুলি নিম্নরূপে (jQuery ব্যবহার করে) নির্বাচন করতে পারি:
$('div')
তবে আমি উপরের নির্বাচন থেকে একটি নির্দিষ্ট div(বলার id="myid") বাদ দিতে চাই ।
Jquery ফাংশন ব্যবহার করে আমি কীভাবে এটি করতে পারি?
উত্তর:
সাধারণ:
$('div').not('#myid');
ব্যবহার .not()দ্বারা ফিরে সেট থেকে এটা দেওয়া নির্বাচক দ্বারা মেলানো উপাদান মুছে ফেলা হবে $('div')।
আপনি :not()নির্বাচকটিও ব্যবহার করতে পারেন :
$('div:not(#myid)');
উভয় নির্বাচক একই কাজ করেন, তবে :not()দ্রুত , সম্ভবতঃ jQuery এর নির্বাচক ইঞ্জিন সিজল এটিকে একটি স্থানীয় .querySelectorAll()কল হিসাবে অনুকূল করতে পারে।
.not()করা অনেক বেশি , তার চেয়ে অনেক বেশি ভাল :not()।
$('div:not(#myid)');(উদ্ধৃতি ব্যতীত)। @ রায়নোস: কেন? :not()একটি CSS3 নির্বাচক। querySelectorAllসমর্থিত হলে jQuery সিলেক্টরকে সরাসরি পাস করতে পারে ...
.notএবং কম পাঠযোগ্য। আমার বলা উচিত ছিল: "jQuery তে নির্বাচক নন"
:not()। নির্বাচক 4-এ এই নির্বাচকও নতুন নন, বা কোটের অনুমতি দেওয়ার জন্য এটি পরিবর্তন করা হয়নি। যদিও আরও জটিল নির্বাচকদের অনুমতি দেওয়ার জন্য এটি পরিবর্তন করা হয়েছে। আমি আপনার মন্তব্যে ভুল
querySelectorAllদ্রুততম হিসাবে চিহ্নিত হয়েছে । একটি বাস্তব বিশ্বের মানদণ্ড নয়, তবে jQuery অভ্যন্তরীণ থেকে কোনও ওভারহেড নেই বলে দেখার আশা করা যায়। :not()বাস্তবে দ্রুততর, সম্ভবতঃ সিজল জানেন যে এটি এটি ব্যবহারের জন্য অনুকূল করতে পারেquerySelectorAll()
var els = toArray(document.getElementsByTagName("div"));
els.splice(els.indexOf(document.getElementById("someId"), 1);
আপনি এটি কেবল পুরানো ধাঁচে করতে পারেন। এত সহজ কিছু সহ জিকুয়ের দরকার নেই।
প্রো টিপস:
ডোম উপাদানগুলির একটি সেট কেবল একটি অ্যারে, তাই আপনার পছন্দসই toArrayপদ্ধতিটি একটিতে ব্যবহার করুন NodeList।
একটি সেটে উপাদান যুক্ত করা ঠিক
set.push.apply(set, arrOfElements);
একটি সেট থেকে একটি উপাদান অপসারণ হয়
set.splice(set.indexOf(el), 1)
আপনি একবারে একাধিক উপাদান সহজেই সরাতে পারবেন না :(
.querySelector()বা .querySelectorAll()সঙ্গে div:not(#myid) দ্রুততর ... এটা কি?
$("div:not(#myid)")
বা
$("div").not("#myid")
একটি আইডি বাদে সমস্ত নির্বাচন করার প্রধান উপায়
আপনি এখানে ডেমো দেখতে পারেন
$("div:not(#myid)") দ্রুততর ... দেশীয় জাভাস্ক্রিপ্ট ব্যবহার করার সময় বা এর জন্য সিজলেজ অপ্টিমাইজেশন পরীক্ষা করুন । .querySelector().querySelectorAll()
যা করা উচিৎ:
$('div:not("#myid")')