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.