jQuery भ्रष्टाचार - is() विधा

उदाहरण

वापस नहीं देता, क्योंकि input एलीमेंट के माता एलीमेंट p एलीमेंट है:

  var isFormParent = $("input[type='checkbox']").parent();.is("form");
  $("div").text("isFormParent = " + isFormParent);

स्वयं आयात करें

विभावना और उपयोग

is() चयनक्रम, एलीमेंट या jQuery ऑब्जैक्ट के आधार पर मेल खाते हुए एलीमेंट सेट को जांच करता है, यदि इन एलीमेंटों में से कम से कम एक एलीमेंट मेल खाता है, तो यह true वापस करता है。

व्याकरण

.is(selector)
पारामीटर वर्णन
selector शब्दकोश रूपांतर, जो मेल खाते हुए एलीमेंटों का चयनक्रम व्यक्त करता है。

विस्तृत वर्णन

अन्य फ़िल्टरिंग विधियों के विपरीत, .is() नए jQuery ऑब्जैक्ट नहीं बनाता। इसके बजाय, यह हमें jQuery ऑब्जैक्ट को किसी संशोधन किए बिना जांच करने की अनुमति देता है। यह बैकबॉक्स में अक्सर अधिक उपयोगी होता है, जैसे कि इवेंट हैंडलर।

यदि हमें एक सूची है, जिसमें दो प्रोजेक्ट की सहायक एलीमेंट हैं:

<ul>
  <li>list <strong>item 1</strong></li>
  <li><span>list item 2</span></li>
  <li>list item 3</li>
</ul>

आप <ul> एलीमेंट में click हैंडलर जोड़ सकते हैं, और कोड को यहां निर्बंधित करें:

$("ul").click(function(event) {
  var $target = $(event.target);
  if ( $target.is("li") ) {
    $target.css("background-color", "red");
  }
);

स्वयं आयात करें

अब, जब उपयोगकर्ता "list" शब्द को पहले सूची आइटम में या तीसरे सूची आइटम के किसी भी शब्द पर क्लिक करता है, तो क्लिक किया गया सूची आइटम लाल पृष्ठभूमि रंग सेट किया जाता है। हालांकि, जब उपयोगकर्ता पहले सूची आइटम के item 1 या दूसरे सूची आइटम के किसी भी शब्द पर क्लिक करता है, तो कोई परिवर्तन नहीं होता, क्योंकि इस स्थिति में, कार्यक्रम का लक्ष्य <strong> है <span>।

कृपया ध्यान दें कि स्थानात्मक चयनक चयनक एक्सप्रेशन के लिए, जैसे :first, :gt() या :even, स्थानात्मक फ़िल्टरिंग .is() को पाठित करने वाले jQuery ऑब्जेक्ट के लिए है, नहीं कि दस्तावेज़ के लिए। इसलिए उपरोक्त एचटीएमएल के लिए, जैसे $("li:first").is("li:last") के तर्क का परिणाम सत्य है, लेकिन $("li:first-child").is("li:last-child") का परिणाम झूठा है।

फ़ंक्शन का उपयोग करके

इस विधि का दूसरा उपयोग, फ़ंक्शन के आधार पर एक्सप्रेशन के लिए अनुपाती एलीमेंटों का मूल्यांकन करना है। प्रत्येक एलीमेंट के लिए यदि फ़ंक्शन खराब होता है, तो .is() भी सत्य होता है। उदाहरण के लिए, नीचे एक थोड़ा ज्यादा जटिल एचटीएमएल खण्ड है:

<ul>
  <li><strong>list</strong> item 1 - one strong tag</li>
  <li><strong>list</strong> item <strong>2</strong> -
    two <span>strong tags</span></li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

आप एचटीएमएल के प्रत्येक <li> में click हैंडलर जोड़ सकते हैं, ताकि वह संदर्भित <li> के भीतर <strong> एलीमेंट की संख्या की गणना कर सके:

$("li").click(function() {
  var $li = $(this),
    isWithTwo = $li.is(function() {
      return $('strong', this).length === 2;
    });;
  if ( isWithTwo ) {
    $li.css("background-color", "green");
  } अन्यथा {
    $li.css("background-color", "red");
  }
);

स्वयं आयात करें