নীচের বিবৃতিটির সমতুল্য jQuery কী?
$('#mydiv').hasClass('foo')
যাতে আপনি কোনও শ্রেণীর নাম দিতে পারেন এবং এটিতে সরবরাহ করা আইডি রয়েছে কিনা তা পরীক্ষা করতে পারেন।
কিছুটা এইরকম:
$('.mydiv').hasId('foo')
নীচের বিবৃতিটির সমতুল্য jQuery কী?
$('#mydiv').hasClass('foo')
যাতে আপনি কোনও শ্রেণীর নাম দিতে পারেন এবং এটিতে সরবরাহ করা আইডি রয়েছে কিনা তা পরীক্ষা করতে পারেন।
কিছুটা এইরকম:
$('.mydiv').hasId('foo')
$('#bar.foo').toggle();কেবলমাত্র একটি আইডি পাবেন কারণ সেগুলি নথির অনন্য হওয়ার জন্য প্রয়োজনীয়। যদি আপনি পিঁপড়াটি কেবল সেই আইডি টগল করে থাকে যদি এটি শ্রেণীর হয় fooতবে কেবল আইডি নির্বাচনকারীকে ক্লাস যুক্ত করুন। যদি নির্বাচক একটি খালি সেট খুঁজে পায় তবে কিছুই হবে না, যদি ফলাফলের সাথে একটি সেট খুঁজে পায় (যার মধ্যে কেবলমাত্র একটিই থাকবে) তবে এটি উপাদানটি টগল করবে। আমার মনে হয় আপনি এটিকে বোঝাচ্ছেন
উত্তর:
আপনি একাধিক নির্বাচককে একত্রিত করে সেই যুক্তিকে সিলেক্টারে বেক করতে পারেন । উদাহরণস্বরূপ, আমরা প্রদত্ত আইডি সহ সমস্ত উপাদানকে লক্ষ্য করতে পারি, যার একটি নির্দিষ্ট বর্গ রয়েছে:
$("#foo.bar"); // Matches <div id="foo" class="bar">
এটি CSS এ আপনি লিখতে চান এমন কিছুর মতো দেখতে পাওয়া উচিত। মনে রাখবেন যে এটি সমস্ত #fooউপাদানগুলিতে প্রযোজ্য হবে না (যদিও কেবল সেখানে একটি হওয়া উচিত) এবং এটি সমস্ত .barউপাদানগুলিতে প্রযোজ্য হবে না (যদিও অনেকগুলি থাকতে পারে)। এটি কেবলমাত্র দুটি উপাদানগুলিতেই যোগ্যতাযুক্ত উপাদানগুলি উল্লেখ করবে।
jQuery এর একটি দুর্দান্ত .isপদ্ধতিও রয়েছে যা আপনাকে নির্ধারণ করতে দেয় যে কোনও উপাদানের নির্দিষ্ট গুণ রয়েছে। আপনি স্ট্রিং সিলেক্টর, এইচটিএমএল এলিমেন্ট বা অন্য কোনও jQuery অবজেক্টের বিপরীতে jQuery সংগ্রহ পরীক্ষা করতে পারেন। এই ক্ষেত্রে, আমরা কেবল স্ট্রিং নির্বাচকের বিরুদ্ধে এটি পরীক্ষা করব:
$(".bar:first").is("#foo"); // TRUE if first '.bar' in document is also '#foo'
is()। সেখানে একজন .hasId()নির্বাচক থাকা উচিত কারণ এটি .hasClass()সত্যিই একজন সুস্পষ্ট অংশীদার বলে মনে হচ্ছে ...
আমি সম্ভবত এটি ব্যবহার করব $('.mydiv').is('#foo');যদি আপনি আইডিটি জানেন তবে আপনি কেন এটি প্রথম স্থানে নির্বাচককে প্রয়োগ করবেন?
idউচিত অন্যথায় এটি অন্য কিছু বৈশিষ্ট্য হওয়া উচিত ... আমি মনে করি পৃষ্ঠাটি বা ক্লায়েন্ট / ব্যবহারকারী-এজেন্টের ভিত্তিতে প্রশ্ন পরিবর্তনের উপাদানটির কাঠামোগত অবস্থান যদি ঠিক আছে তবে এটি ছাড়া অন্য .. ।
আপডেট: দুঃখিত প্রশ্নটি ভুল বুঝেছেন, .has()উত্তর সরিয়েছেন ।
অন্য বিকল্প উপায়, .hasId()প্লাগইন তৈরি করুন
// the plugin
$.fn.hasId = function(id) {
return this.attr('id') == id;
};
// select first class
$('.mydiv').hasId('foo') ?
console.log('yes') : console.log('no');
// select second class
// $('.mydiv').eq(1).hasId('foo')
// or
$('.mydiv:eq(1)').hasId('foo') ?
console.log('yes') : console.log('no');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mydiv" id="foo"></div>
<div class="mydiv"></div>
ধরা যাক যে আপনি কয়েকটি ডিওএম অবজেক্টের মাধ্যমে পুনরাবৃত্তি করছেন এবং আপনি নির্দিষ্ট আইডির সাহায্যে কোনও উপাদান খুঁজে পেতে এবং ধরতে চান
<div id="myDiv">
<div id="fo"><div>
<div id="bar"><div>
</div>
আপনি হয় যেমন কিছু লিখতে পারেন
$('#myDiv').find('#bar')
মনে রাখবেন যে আপনি যদি কোনও শ্রেণি নির্বাচক ব্যবহার করেন তবে সন্ধানের পদ্ধতিটি সমস্ত মিলে যাওয়া উপাদানগুলিকে ফিরিয়ে দেবে।
অথবা আপনি একটি পুনরাবৃত্তি ফাংশন লিখতে পারেন যা আরও উন্নত কাজ করবে
<div id="myDiv">
<div id="fo"><div>
<div id="bar"><div>
<div id="fo1"><div>
<div id="bar1"><div>
<div id="fo2"><div>
<div id="bar2"><div>
</div>
$('#myDiv div').each(function() {
if($(this).attr('id') == 'bar1')
//do something with bar1
});
শ্রেণি নির্বাচকের জন্য একই কোডটি সহজেই সংশোধন করা যেতে পারে।
<div id="myDiv">
<div class="fo"><div>
<div class="bar"><div>
<div class="fo"><div>
<div class="bar"><div>
<div class="fo"><div>
<div class="bar"><div>
</div>
$('#myDiv div').each(function() {
if($(this).hasClass('bar'))
//do something with bar
});
আমি খুশি যে আপনি সূচক () দিয়ে আপনার সমস্যাটি সমাধান করেছেন, যা আপনার পক্ষে কখনও কাজ করে I আমি আশা করি এটি একই সমস্যাটি অন্যদের সহায়তা করবে। চিয়ার্স :)
$('#' + theMysteryId + '.someClass').each(function() { /* do stuff */ });
#theMysteryId।
কেবলমাত্র আমি শেষ পর্যন্ত সূচক () ব্যবহার করে এটি সমাধান করেছি solved
আর কিছুই মনে হচ্ছে কাজ করছে না।
সুতরাং ভাইবোন উপাদানগুলির জন্য এটি একটি ভাল কাজ যদি আপনি প্রথমে একটি সাধারণ শ্রেণি দ্বারা নির্বাচন করছেন এবং তারপরে প্রতিটি নির্দিষ্ট একটির জন্য আলাদাভাবে কিছু পরিবর্তন করতে চান।
সম্পাদনা করুন: যারা জানেন না (আমার মতো) সূচক () নির্বাচিতদের সাথে মেলে এমন প্রতিটি উপাদানগুলির জন্য একটি সূচক মান দেয় যা 0 থেকে ডিওমে তাদের আদেশের উপর নির্ভর করে গণনা করে। যতক্ষণ আপনি জানেন যে ক্লাস = "ফু" দিয়ে কতগুলি উপাদান রয়েছে আপনার কোনও আইডি লাগবে না।
স্পষ্টতই এটি সর্বদা সহায়তা করবে না, তবে কেউ এটি দরকারী বলে মনে করতে পারেন।
উপাদানটির আইডি রয়েছে কিনা তা পরীক্ষা করুন
if ($('#id').attr('id') == 'id')
{
//OK
}
আপনি যদি এটি ব্যবহার করে আইডি উপাদানটি ব্যবহার করেন তবে তাও পরীক্ষা করতে পারেন:
if(typeof $(.div).attr('id') == undefined){
//element has no id
} else {
//element has id selector
}
আমি বিশ্বব্যাপী ডেটা টেবিল এবং নির্দিষ্ট আদেশযুক্ত ডেটা টেবিলগুলির জন্য এই পদ্ধতিটি ব্যবহার করি