ক্যোয়ারী নির্বাচনকারী একাধিক শর্ত সহ


105

একাধিক সম্পর্কযুক্ত শর্তাদি ব্যবহার করে কি কিউইলেক্টর সমস্ত অনুসন্ধান করে অনুসন্ধান করা সম্ভব? যদি হ্যাঁ কিভাবে? এবং সেগুলি কীভাবে নির্দিষ্ট করা যায় সেগুলি AND বা OR মানদণ্ড কিনা?

উদাহরণ স্বরূপ:

কীভাবে একটি একক ক্যোয়ারীসিলেক্টরআল কল দিয়ে সমস্ত ফর্ম গুলি, পিলেজেন্ড গুলি সন্ধান করবেন ? সম্ভব?


আপনি " এবং বা মানদণ্ড " দ্বারা কী বোঝাতে চাইছেন তা নিশ্চিত নই । আপনি কি তার জন্য একটি উদাহরণ দিতে পারেন?
বার্গী

উত্তর:


176

querySelectorAllএকাধিক সম্পর্কযুক্ত শর্ত ব্যবহার করে কী অনুসন্ধান করা সম্ভব ?

হ্যাঁ, কারণ querySelectorAllপুরো সিএসএস নির্বাচনকারীকে গ্রহণ করে, এবং সিএসএসের মধ্যে নির্বাচক গোষ্ঠীগুলির ধারণা রয়েছে যা আপনাকে একাধিক সম্পর্কিত সম্পর্কিত নির্বাচক নির্দিষ্ট করতে দেয়। এই ক্ষেত্রে:

var list = document.querySelectorAll("form, p, legend");

... এমন কোনও উপাদান যা একটি form বা p বা এমন একটি উপাদান যুক্ত করে ফিরিয়ে দেবে legend

সিএসএসেরও অন্য ধারণা রয়েছে: আরও মানদণ্ডের ভিত্তিতে সীমাবদ্ধ। আপনি কেবলমাত্র একজন নির্বাচকের একাধিক দিক একত্রিত করুন। এই ক্ষেত্রে:

var list = document.querySelectorAll("div.foo");

... সমস্ত একটি তালিকা ফিরে আসবে divউপাদান আছে যা আরো ( এবং ) ক্লাস আছে fooঅন্যান্য উপেক্ষা, divউপাদান।

আপনি অবশ্যই এগুলিকে একত্রিত করতে পারেন:

var list = document.querySelectorAll("div.foo, p.bar, div legend");

... যার অর্থ " divএমন কোনও উপাদান অন্তর্ভুক্ত করুন যার ক্লাসও রয়েছে foo, pযে কোনও উপাদান রয়েছে যার বর্গও রয়েছে barএবং যে legendউপাদানগুলির সাথে একটি এর অভ্যন্তরেও অন্তর্ভুক্ত রয়েছে div।"


ডকুমেন্ট.কোয়ারিসিলেক্টরএল থেকে একটি একক ক্লাস ব্যবহার করার সম্ভাবনা রয়েছে, উদাহরণস্বরূপ আমার কাছে হরটার স্পটস = ডকুমেন্ট.কোয়ারীসিলিটরএল ("। ক্লিকম্যাপটাইম.টেক্সট, .ক্লিকম্যাপটাইম.মલ્ટিয়াইমেজটেক্সট") রয়েছে; ভার i; (i = 0; i <হটস্পটস.লেন্থ; আই ++) {হটস্পটস [i] .style.display = "কিছুই নয়"; Else আমাকে অন্য বিবৃতি ব্যবহার করতে হবে, এটি কোনও শ্রেণি প্রদর্শন নয় বা অন্য কিছু কিনা তা পরীক্ষা করে দেখুন। যদি (হটস্পটস [0 বা 1]। স্টাইল.ডিসপ্লে == "কিছুই না") কাজ করে না।
মাইল মিজাতোভিć

4
@ মাইলমিজাতোভিচ: প্রশ্নগুলি মন্তব্য করার পরিবর্তে প্রশ্ন হিসাবে পোস্ট করা উচিত। তবে দেখুন: স্ট্যাকওভারফ্লো.com
টিজে ক্রোডার

ঠিক আছে, তবে সাধারণভাবে, আমি যা বলেছিলাম তা করা কি সম্ভব? লিঙ্কটি কোনও
উপকারে

নির্বাচক দলগুলির ধারণাটি এখনও আমার জন্য 2018 সালে কাজ করেছে ... ভাগ করে নেওয়ার জন্য ধন্যবাদ
এরিক হিপারল - কোডস্লেয়ার2010

17

ডকুমেন্টেশন অনুসারে, কোনও সিএসএস নির্বাচকের মতো, আপনি নিজের পছন্দমতো শর্ত নির্দিষ্ট করতে পারেন এবং সেগুলি যৌক্তিক 'ওআর' হিসাবে বিবেচিত হবে।

এই উদাহরণটি "নোট" বা "সতর্কতা" এর একটি শ্রেণীর সাথে ডকুমেন্টের মধ্যে সমস্ত ডিভ উপাদানগুলির একটি তালিকা প্রদান করে:

var matches = document.querySelectorAll("div.note, div.alert");

উত্স: https://developer.mozilla.org/en-US/docs/Web/API/ ডকুমেন্ট / কোয়েরিলেক্টর সব

এরই মধ্যে 'এবং' কার্যকারিতাটি পেতে আপনি উদাহরণস্বরূপ কেবল একটি বহুগুণিত নির্বাচককে ব্যবহার করতে পারেন, যেমন জেকুরি বলেছেন:

https://api.jquery.com/m Multiple-attribute-selector/

প্রাক্তন "input[id][name$='man']" উপাদানটির আইডি এবং নাম উভয় নির্দিষ্ট করে এবং উভয় শর্ত পূরণ করতে হবে। ক্লাসগুলির জন্য এটি .class1.class22 শ্রেণীর অবজেক্টের প্রয়োজন হিসাবে পরিষ্কার " "।

উভয়ের সম্ভাব্য সংমিশ্রণগুলি বৈধ, তাই আপনি আরও পরিশীলিত 'OR' এবং 'এবং' এবং এক্সপ্রেশনগুলির সমান সহজেই পেতে পারেন।


4
যদিও পদ্ধতিটি নিজেই সঠিক, সিএসএস ব্যাখ্যা করার জন্য jQuery উল্লেখ করার দরকার নেই (বিশেষত যেহেতু অপের প্রশ্নটি জাভাস্ক্রিপ্টের মধ্যে সীমাবদ্ধ)।
ছায়া কুপার


0

খাঁটি জাভাস্ক্রিপ্টের সাহায্যে আপনি এটি করতে পারেন (যেমন এসকিউএল) এবং আপনার যা কিছু প্রয়োজন, মূলত:

<html>

<body>

<input type='button' value='F3' class="c2" id="btn_1">
<input type='button' value='F3' class="c3" id="btn_2">
<input type='button' value='F1' class="c2" id="btn_3">

<input type='submit' value='F2' class="c1" id="btn_4">
<input type='submit' value='F1' class="c3" id="btn_5">
<input type='submit' value='F2' class="c1" id="btn_6">

<br/>
<br/>

<button onclick="myFunction()">Try it</button>

<script>
    function myFunction() 
    {
        var arrFiltered = document.querySelectorAll('input[value=F2][type=submit][class=c1]');

            arrFiltered.forEach(function (el)
            {                
                var node = document.createElement("p");
                
                node.innerHTML = el.getAttribute('id');

                window.document.body.appendChild(node);
            });
        }
    </script>

</body>

</html>


4
এটি আসলে প্রশ্নের উত্তর দেয় না, বিশেষত how to specify whether those are AND or OR criteriaঅংশটি, গৃহীত উত্তর দেখুন
মায়দান অ্যালন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.