दिलचस्प पोस्ट
जब रूट एल कैपिटन (रूटलेस अक्षम) पर ऑपरेशन की अनुमति नहीं है एंड्रॉइड में एक अमीर पाठ संपादक को लागू करना? सिग्नेशन और सिग्नल के बीच अंतर क्या है? इंटेलिजेंस से सार्वजनिक विधियों को छिपाने के तरीके window.onbefore क्रोम में एजेक्स अनुरोध लोड करें निर्भरता द्वारा निर्भर ऑब्जेक्ट सॉर्ट करने के लिए कैसे इनर दो पाठ फ़ाइलों में शामिल होते हैं क्या एक TextView में कई शैलियों को संभव है? क्या मुझे <img> या टैग, आदि के अंत में "/" की आवश्यकता है? यूआरएल पैरामीटर से बचें रिचेर के साथ कस्टम ब्रेस फ़ॉर्मेटिंग आईओएस 7 पर ऑटो लेआउट की कमी UITableViewCell पर जारी होती है फायरबेज – ऐप हटाना और पुनर्स्थापना करना उपयोगकर्ता को अन-प्रमाणित नहीं करता है JSON स्ट्रिंग में बाइनरी डेटा Base64 से बेहतर कुछ स्ट्रट यूआरएल को रूटवैल्यूएक्वेयरिटी में

एट्रिब्यूट्स के लिए सीएसएस चयनकर्ता केस असंवेदनशील

अगर मेरे पास एक HTML तत्व है <input type="submit" value="Search" /> एक सीएसएस चयनकर्ता को केस-संवेदी होना चाहिए:

input[value='Search'] मैचों

input[value='search'] मेल नहीं खाती

मुझे ऐसे समाधान की आवश्यकता है जहां केस असंवेदनशील दृष्टिकोण भी काम करता है मैं सेलेनियम 2 और जेक्जरी का उपयोग कर रहा हूं, इसलिए दोनों के लिए आपका स्वागत है।

Solutions Collecting From Web of "एट्रिब्यूट्स के लिए सीएसएस चयनकर्ता केस असंवेदनशील"

 $(':input[name]').filter(function() { return this.value.toLowerCase() == 'search'; }); 

जेएसफ़ैल्ड

आप एक कस्टम चयनकर्ता भी बना सकते हैं …

 $.expr[':'].valueCaseInsensitive = function(node, stackIndex, properties){ return node.value.toLowerCase() == properties[3]; }; var searchInputs = $(':input:valueCaseInsensitive("Search")'); 

जेएसफ़ैल्ड

कस्टम चयनकर्ता थोड़ी अधिक ओवरकिल है अगर यह एक बार कर रहा है, लेकिन अगर आपको इसे अपने आवेदन में कई बार उपयोग करने की आवश्यकता है, तो यह एक अच्छा विचार हो सकता है।

अद्यतन करें

क्या किसी भी विशेषता के लिए उस तरह का कस्टम चयनकर्ता होना संभव है?

बेशक, निम्नलिखित उदाहरण देखें यह थोड़ा जटिल है (सिंटैक्स जैसे :input[value:toLowerCase="search"] अधिक सहज हो सकता है), लेकिन यह काम करता है 🙂

 $.expr[':'].attrCaseInsensitive = function(node, stackIndex, properties){ var args = properties[3].split(',').map(function(arg) { return arg.replace(/^\s*["']|["']\s*$/g, ''); }); return $(node).attr(args[0]).toLowerCase() == args[1]; }; var searchInputs = $('input:attrCaseInsensitive(value, "search")'); 

जेएसफ़ैल्ड

आप संभवत: उस स्ट्रिंग को एक सरणी बनाने के लिए eval() का उपयोग कर सकते हैं, लेकिन मैं इसे इस तरह से और अधिक आरामदायक कर रहा हूं (और आप अपने चयनकर्ता में जो भी कोड डालते हैं उसे आप गलती से निष्पादित नहीं करेंगे)।

इसके बजाय, मैं स्ट्रिंग को , सीमांकक को विभाजित कर रहा हूं, और फिर सफेद स्थान को अलग करना, और प्रत्येक सरणी के सदस्य के दोनों ओर ध्यान दें। ध्यान दें कि बोली के अंदर वाकई सचमुच इलाज नहीं किया जाएगा। लेकिन आप हमेशा इस संभावना के खिलाफ कोड कर सकते हैं। मैं आपको ये छोड़ दूँगा। 🙂

मुझे नहीं लगता कि map() पास सबसे अच्छा ब्राउज़र समर्थन है, ताकि आप args सरणी पर पुनरावृति कर सकते हैं या Array वस्तु को बढ़ा सकते हैं ।

CSS4 (सीएसएस चयनकर्ता स्तर 4) इसके लिए समर्थन जोड़ता है:

 input[value='search' i] 

यह अंत में "आई" है जो चाल करता है I

2016 के मध्य में व्यापक गोद लेने की शुरुआत की गई: क्रोम (v49 से), फ़ायरफ़ॉक्स (v47?), ओपेरा और कुछ अन्य लोगों के पास यह है आईई नहीं और एज अभी तक नहीं है "मैं उपयोग कर सकता हूँ" देखें …

 input[value='Search'] matches input[value='search' i] Also matches in latest browsers 

समर्थन: संस्करण: क्रोम> = 49.0, फ़ायरफ़ॉक्स (छिपकोड)> = 47.0, सफारी> = 9

आप केवल चयनकर्ताओं के साथ ऐसा नहीं कर सकते हैं, कोशिश करें:

 $('input').filter(function() { return $(this).attr('value').toLowerCase() == 'search'; });