jQuery এন্ড এবং ওআর অপারেটর ব্যবহার করে অ্যাট্রিবিউট দ্বারা নির্বাচন করুন


104

আমি ভাবছি, যদি জাওকিউরিতে সম্ভব হয় তবে ও ও ওআর ব্যবহার করে নামাদির গুণাবলী দ্বারা উপাদান নির্বাচন করা যায়।

উদাহরণ:

<div myid="1" myc="blue">1</div>
<div myid="2" myc="blue">2</div>
<div myid="3" myc="blue">3</div>
<div myid="4">4</div>

আমি সমস্ত উপাদান নির্বাচন করতে চাই যেখানে myc="blue"কেবলমাত্র myid1 বা 3 এর সাথে সেট রয়েছে।

সুতরাং আমি চেষ্টা করেছি:

a=$('[myc="blue"] [myid="1"]  [myid="3"]');

তবে এটি এখানে কার্যকর হয় না:

a=$('[myc="blue"] && [myid="1"] || [myid="3"]');

বিশেষ ফিল্টার ফাংশন না লিখে এটি কি সম্ভব?


7
বিশেষ দ্রষ্টব্য: আপনি না আপ আপনার নিজের গুণাবলীর মত উপার্জন করতে হবে mycএবং myid। আপনি যদি এইচটিএমএল 5 ব্যবহার করেন তবে এগুলি data-: data-mycএবং data-myid।
— RoToRa

@ রোটোরা, এইচটিএমএল 5 তে এমন কোনও ডকুমেন্টেশন রয়েছে যা বলছে যে আপনার এমন করা উচিত? বেশিরভাগ ওয়েবসাইট আমি দেখতে পাই ডেভেলপারদের মস্তিষ্কের সময়ে যা কিছু চিন্তা করা যায় তা ব্যবহার করুন ...
— অ্যালেক্সিস উইলক

1
লোকেরা এটি করে বলে, এর অর্থ এটি সঠিক নয়। দেখুন HTML5 এর অনুচ্ছেদ 3.2.1 : "লেখক, উপাদান, বৈশিষ্ট্য, বা অ্যাট্রিবিউট মান যে এই স্পেসিফিকেশন বা অন্যান্য প্রযোজ্য নির্দিষ্টকরণের দ্বারা অনুমতি নেই ব্যবহার করা উচিত নয় হিসাবে এমনটি করা হলেও তা ভাষা ভবিষ্যতে বাড়ানো হতে তা উল্লেখযোগ্যভাবে কঠিন করে তোলে।"
— RoToRa

1
এটি একটি ভাল প্রশ্নের দরিদ্র উদাহরণ। ইনপুটগুলির মতো বিভিন্ন উপাদানের প্রকার সম্পর্কে কী?
— jesus g_for হ্যারিস

উত্তর:


192

এবং অপারেশন

a=$('[myc="blue"][myid="1"][myid="3"]');

বা অপারেশন, কমা ব্যবহার করুন

a=$('[myc="blue"],[myid="1"],[myid="3"]');

যেমন @ ভেগা মন্তব্য করেছেন:

a=$('[myc="blue"][myid="1"],[myc="blue"][myid="3"]');

1
আমার মনে হয়, সে চায়myc == blue && (id == 1 || id == 3)
— সেলককুমার আরুমুগাম

2
যদি আমি a=$('[myc="blue"] [myid="1"],[myid="3"]');এটি ব্যবহার করি তার অর্থ হয় ([myc="blue"] AND [myid="1"]) OR [myid="3"]বা ([myc="blue"]) AND ([myid="1"] OR [myid="3"]) আমি দ্বিতীয়বারের জন্য সন্ধান করছি // সম্পাদনা: আপডেটের জন্য আপনাকে ধন্যবাদ! :-)
— 12:30

18

একাধিক নির্বাচক [ডক্স] (ওআর) ব্যবহার করে সাধারণ ব্যবহার .filter() [ডক্স] (এবং ):

$('[myc="blue"]').filter('[myid="1"],[myid="2"]');

সাধারণভাবে নির্বাচকদের শৃঙ্খলাবদ্ধ করা a.foo.bar[attr=value]যেমন একরকম এবং নির্বাচক।

সমর্থিত নির্বাচকদের সম্পর্কে jQuery এর বিস্তৃত ডকুমেন্টেশন রয়েছে , এটি পড়ার মতো।


আপনি কি জানেন, এটি গ্যাবে থেকে উত্তরের চেয়ে দ্রুত হলে?
— Bndr

আমি জানি না, হয়তো, নাও হতে পারে।
— ফেলিক্স ক্লিং

10

নীচের মতো ফিল্টার লেখার বিষয়ে কীভাবে,

$('[myc="blue"]').filter(function () {
   return (this.id == '1' || this.id == '3');
});

সম্পাদনা: @ জ্যাক ধন্যবাদ .. সম্পূর্ণরূপে এটি মিস হয়েছে ..

$('[myc="blue"]').filter(function() {
   var myId = $(this).attr('myid');   
   return (myId == '1' || myId == '3');
});

ডেমো


5

নির্বাচকটিতে এবং অপারেটরটি কেবল একটি খালি স্ট্রিং, এবং অপারেটরটি কমা হয়।

তবে এখানে কোনও গ্রুপিং বা অগ্রাধিকার নেই, সুতরাং আপনাকে শর্তগুলির একটি পুনরাবৃত্তি করতে হবে:

a=$('[myc=blue][myid="1"],[myc=blue][myid="3"]');

আপনার এই উক্তিগুলি দরকার? আমি বলতে চাইছি কেবল ধারাবাহিকতার জন্য .. সম্ভবত কেবল আমার জন্য। >। <
— সেলককুমার আরুমুগাম

1
@ ভেগা: আপনার মতো সরল স্ট্রিংয়ের জন্য উদ্ধৃতিগুলির দরকার নেই blue, তবে আমি সংখ্যাসূচক মান সম্পর্কে নিশ্চিত নই, তাই আমি সেগুলি রেখে দিয়েছি।
— গুফা

5

প্রথমে সমস্ত পরিস্থিতিতে যে অবস্থাটি ঘটে তা সন্ধান করুন, তারপরে বিশেষ শর্তগুলি ফিল্টার করুন:

$('[myc="blue"]')
    .filter('[myid="1"],[myid="3"]');

1

আপনার বিশেষ ক্ষেত্রে এটি হবে

a=$('[myc="blue"][myid="1"],[myc="blue"][myid="3"]');

0

JQuery উপাদান নির্বাচন করতে সিএসএস নির্বাচক ব্যবহার করে, সুতরাং আপনার কেবলমাত্র একাধিক নিয়ম কমা দিয়ে আলাদা করে তাদের ব্যবহার করা দরকার:

a=$('[myc="blue"], [myid="1"], [myid="3"]');

সম্পাদনা:

দুঃখিত, আপনি নীল এবং 1 বা 3 চেয়েছিলেন How কীভাবে:

a=$('[myc="blue"][myid="1"],  [myid="3"]');

দুটি বৈশিষ্ট্য নির্বাচককে একসাথে রাখলে আপনাকে দেয় এবং কমা ব্যবহার করে আপনাকে ওআর দেয়।


1
আমার মনে হয়, সে চায়myc == blue && (id == 1 || id == 3)
— সেলককুমার আরুমুগাম

[myc="blue"]দ্বিতীয় উদাহরণে আপনাকে নির্বাচকটির পুনরাবৃত্তি করতে হবে ।
— RoToRa

-1

সঠিকভাবে লজিক্যাল অপারেশন ব্যবহার যে আপনার বিবৃত করেছি উপাদান নির্বাচন করতে, আপনি শুধু প্রয়োজন jQuery.filter()জন্য ANDঅপারেশন নয় "বিশেষ ফিল্টার ফাংশন"। এছাড়াও আপনি প্রয়োজন jQuery.add()জন্য ORঅপারেশন।

var elements = $('[myc="blue"]').filter('[myid="1"').add('[myid="3"');

বিকল্পভাবে, কোনও একক নির্বাচককে শর্টহ্যান্ড ব্যবহার করে কাজ সম্পাদন করা সম্ভব, যেখানে জ্যামিং নির্বাচকরা একসাথে হিসাবে কাজ করে ANDএবং কমা দিয়ে আলাদা করে একটি হিসাবে কাজ করে OR:

var elements = $('[myc="blue"][myid="1"], [myid="3"]');
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.