উত্তর:
পরীক্ষা করে দেখুন jQuery এর প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী ...
আপনি আপনার নির্বাচক দ্বারা ফিরিয়ে দেওয়া jQuery সংগ্রহের দৈর্ঘ্যের সম্পত্তিটি ব্যবহার করতে পারেন:
if ( $('#myDiv').length ){}
lenght
পরিবর্তে ব্যবহার করেছেন length
; এটি একটি বানান ত্রুটি।
.length
।
(যেহেতু আমার উত্তরটি দেওয়ার পক্ষে যথেষ্ট খ্যাতি নেই বলে মনে হচ্ছে ...)
নেকড়ে লিখেছেন:
অপরিজ্ঞাত বা নাল বস্তুতে দৈর্ঘ্যের সম্পত্তি কল করার ফলে আইই এবং ওয়েবকিট ব্রাউজারগুলি ব্যর্থ হতে পারে!
পরিবর্তে এটি চেষ্টা করুন:
// NOTE!! THE FOLLOWING IS WRONG; DO NOT USE! -- EleotleCram if($("#something") !== null){ // do something }
অথবা
// NOTE!! THE FOLLOWING IS WRONG; DO NOT USE! -- EleotleCram if($("#something") === null){ // don't do something }
যদিও এটি সত্য যে কোনও সংজ্ঞায়িত বা নাল বস্তুতে দৈর্ঘ্যের সম্পত্তি কল করা ব্রাউজারগুলিকে ব্যর্থ করে দেবে, jQuery এর নির্বাচকদের ($ ('...')) ফলাফল কখনই বাতিল বা অপরিজ্ঞাত হবে না । এইভাবে কোডের পরামর্শগুলি কোনও অর্থ দেয় না। অন্য উত্তরগুলির মধ্যে একটি ব্যবহার করুন, তারা আরও বুদ্ধিমান।
(আপডেট ২০১২) কারণ লোকেরা কোড দেখে এবং এই উত্তরটি তালিকাটি বেশ উপরে রয়েছে: গত কয়েক বছর ধরে আমি এই ছোট প্লাগইনটি ব্যবহার করছি:
jQuery.fn['any'] = function() {
return (this.length > 0);
};
আমি মনে করি $ ('ডিভ')। যেকোন () $ ('ডিভ') দৈর্ঘ্যের চেয়ে ভাল পড়বে, তত বেশি আপনি টাইপোগুলির দ্বারা খুব বেশি ক্ষতিগ্রস্থ হবেন না: $ ('ডিভ') a , $ (' ডিভ ')। দৈর্ঘ্য নীরবে সম্ভবত সর্বদা মিথ্যা হয়ে থাকবে।
__
নভেম্বর 2012 এডিট করে:
1) যেহেতু লোক কোডের দিকে নজর রাখে এবং কোডের চারপাশে কী বলা হয় তা না পড়ার জন্য আমি ওল্ফের উদ্ধৃত কোডটিতে দুটি বড় ক্যাভিয়েট লেক্টরের নোট যুক্ত করেছি।
2) আমি এই পরিস্থিতির জন্য যে ছোট প্লাগইন ব্যবহার করি তার কোড যুক্ত করেছি।
অনুসন্ধান ফাংশনটি মিলবে এমন উপাদানগুলির একটি অ্যারে প্রদান করে। দৈর্ঘ্য শূন্য কিনা তা আপনি পরীক্ষা করতে পারেন। শুধুমাত্র একবারে উপাদানগুলি অনুসন্ধান করার জন্য পরিবর্তনটি নোট করুন এবং ফলাফলগুলি প্রয়োজনীয় হিসাবে পুনরায় ব্যবহার করুন।
var elem = $("#btext" + i);
if (elem.length != 0) {
elem.text("Branch " + i);
}
এছাড়াও, আপনি কি কেবল পাঠ্য ফাংশনটি ব্যবহার করার চেষ্টা করেছেন - যদি কোনও উপাদান উপস্থিত না থাকে তবে এটি কিছুই করবে না।
$("#btext" + i).text("Branch " + i);
jquery $ () ফাংশনটি সর্বদা নাল ন্যূন ফেরত দেয় - এর অর্থ উপাদানগুলি আপনার নির্বাচক ক্রিটারিয়া সাথে মেলে। যদি উপাদানটি না পাওয়া যায় তবে এটি একটি খালি অ্যারেটি ফিরিয়ে দেবে। সুতরাং আপনার কোডটি এরকম কিছু দেখবে -
if ($("#btext" + i).length){
//alert($("#btext" + i).text());
$("#btext" + i).text("Branch " + i);
}
JQuery 1.4 এ আপনি is .isEmptyObject ফাংশনটি পান তবে আপনি যদি আমাদের মত জিকিউর পুরানো সংস্করণ ব্যবহার করতে বাধ্য হন তবে দরিদ্র ড্রুপাল বিকাশকারীরা কেবল এই কোডটি ব্যবহার করে চুরি করবেন:
// This is a function similar to the jQuery 1.4 $.isEmptyObject.
function isObjectEmpty(obj) {
for ( var name in obj ) {
return false;
}
return true;
}
এটি ব্যবহার করুন:
console.log(isObjectEmpty(the_object)); // Returns true or false.
আপনি যা নির্বাচন করেন তা বিবেচনা না করেই ফাংশনটি $()
সর্বদা একটি jQuery অবজেক্ট দেয় যাতে পরীক্ষার জন্য পোষাক ব্যবহার করা যায় না। size()
উপরে বর্ণিত হিসাবে ফাংশন বা নেটিভ দৈর্ঘ্যের সম্পত্তিটি ব্যবহার করা এখনও সবচেয়ে ভাল উপায় (একমাত্র না হলে) ।
if ( $('selector').size() ) {...}
if ( $('#whatever')[0] ) {...}
সমস্ত নেটিভ jQuery পদ্ধতি দ্বারা ফিরে আসা jQuery অবজেক্টটি একটি অ্যারে নয়, এটি অনেকগুলি বৈশিষ্ট্যযুক্ত একটি বস্তু; তাদের মধ্যে একটি "দৈর্ঘ্য" সম্পত্তি হচ্ছে। আপনি আকার () বা চেক (0) বা () পেতে () পেতে পারেন ('(0)' প্রথম উপাদান অ্যাক্সেস করার মতো একই কাজ করে, যেমন $ (এলেম) [0]
"অপরিজ্ঞাত" ব্যবহার সম্পর্কে কী?
if (value != undefined){ // do stuff }
$("#selector").get(0)
নাল দিয়ে চেক করতে ব্যবহার করুন । ডোম উপাদানটি ফেরত পান, ততক্ষণ আপনি কোনও অ্যারে নিয়ে কাজ করছেন, যেখানে আপনাকে দৈর্ঘ্যের সম্পত্তিটি পরীক্ষা করতে হবে। নাল হ্যান্ডলিংয়ের জন্য আমি ব্যক্তিগতভাবে দৈর্ঘ্যের চেক পছন্দ করি না, এটি কোনও কারণে আমাকে বিভ্রান্ত করে :)
দৈর্ঘ্যের সম্পত্তি ব্যবহার করে আপনি এটি করতে পারেন।
jQuery.fn.exists = function(){return ($(this).length < 0);}
if ($(selector).exists()) {
//do somthing
}