2013-02-13 42 views
9

मुझे आश्चर्य है कि क्यों लोग input पर एक jQuery चयनकर्ता के रूप में पसंद करते हैं? असल में, यह दो पंक्तियां एक ही काम करने लगती हैं:इनपुट बनाम: jQuery में इनपुट

$('input:first').focus() 
$(':input:first').focus() 

लेकिन दूसरा संस्करण अधिक व्यापक रूप से उपयोग किया जाता है, और मुझे नहीं पता कि क्यों। इसके अलावा, :input चयनकर्ता इस बेंचमार्क के अनुसार धीमे प्रतीत होता है: http://jsperf.com/input-vs-input/2

उत्तर

17

:input jQuery जो <buttons>, <textarea>, e.t.c शामिल

input एक टैग मैच जो कड़ा <input> से मेल खाता है द्वारा छद्म चयनकर्ता है।

इस अतिरिक्त टिप्पणी के बारे में :input जानकारीपूर्ण है:

क्योंकि: इनपुट एक jQuery विस्तार और सीएसएस विनिर्देशन का हिस्सा नहीं है, :input का उपयोग कर प्रदर्शन देशी डोम querySelectorAll() विधि द्वारा प्रदान को बढ़ावा देने का लाभ नहीं ले जा सकते प्रश्नों । तत्वों का चयन करने के लिए :input का उपयोग करते समय सर्वश्रेष्ठ प्रदर्शन प्राप्त करने के लिए, पहले शुद्ध सीएसएस चयनकर्ता का उपयोग करके तत्वों का चयन करें, फिर .filter(":input") का उपयोग करें।

--from https://api.jquery.com/input-selector/

4

input केवल इनपुट तत्व चयनकर्ता है। :input भी textarea, select, और button (फॉर्म नियंत्रण) का चयन करता है।

यह वरीयता नहीं है क्योंकि वास्तविकता में वे कुछ अलग चीजें करते हैं।

1

:input सभी इनपुट, टेक्स्टरेरा, चयन और बटन तत्वों का चयन करता है, जबकि input बस इनपुट टैग वाले तत्वों का चयन करता है।