2012-01-09 8 views
8

मैं jQuery contain का उपयोग कर एक div की सामग्री में इनपुट में दी गई स्ट्रिंग की तुलना करने की कोशिश कर रहा हूं।jQuery का उपयोग शामिल है और LowerCase()

समस्या यह है कि, मैं यह जांचने में सक्षम होना चाहता हूं कि स्ट्रिंग को ऊपरी/निचले मामले के बावजूद निहित किया गया है या नहीं।

$(document).ready(function() { 
    drawDimensions('dContent'); 
    $('#dSuggest').keyup(function() { 
     var dInput = this.value; 
     $(".dDimension:contains('" + dInput + "')").css("display","block"); 
    }); 
}); 

तो अगर .dDimension divs में से एक 'तिथि' होता है और एक उपयोगकर्ता 'प' कुंजी दबाना, मुझे लगता है कि आइटम दिखाना चाहते हैं:

यह मेरा कार्य है।

क्या यह संभव है?

+1

संभव डुप्लिकेट वहाँ एक केस संवेदी jQuery है: चयनकर्ता शामिल है?] (http://stackoverflow.com/questions/187537/is-there-a-case-insensitive-jquery-contains-selector) –

उत्तर

18

आप .filter[docs] उपयोग कर सकते हैं:

var dInput = this.value.toLowerCase(); 

$(".dDimension").filter(function() { 
    return $(this).text().toLowerCase().indexOf(dInput) > -1; 
}).css("display","block"); 
+0

क्या मैं विपरीत जांचने के लिए '' '' 'फ़ंक्शन का उपयोग नहीं कर सकता? –

+0

निश्चित रूप से। या आप '> -1' से' === -1' बदलते हैं। –

+0

धन्यवाद! पूरी तरह से काम कर रहा हूँ। –

1

आप jQuery का विस्तार करके अपने खुद के चयनकर्ता लिख ​​सकते हैं। इस

$.extend($.expr[':'], { 
    'containsi': function(elem, i, match, array) 
    { 
    return (elem.textContent || elem.innerText || '').toLowerCase() 
    .indexOf((match[3] || "").toLowerCase()) >= 0; 
    } 
}); 

useage $(".dDimension:containsi('" + dInput + "')").css("display","block");

0

the jQuery documentation for contains में पिछले टिप्पणियां एक 'icontains' कार्यान्वयन है कि आप के अनुरूप बन प्रदान करता है की कोशिश करो।

$.expr[':'].icontains = function(obj, index, meta, stack){ 
    return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0; 
}; 

// Example usage. 
$("div:icontains('John')").css("text-decoration", "underline"); 
1

this example पर एक नज़र डालें, वह एक केस-संवेदी होते हैं चयनकर्ता के साथ jQuery चयनकर्ताओं का विस्तार है कि वह containsi, इस तरह कहता है:

$.extend($.expr[':'], { 
    'containsi': function (elem, i, match, array) { 
     return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || '').toLowerCase()) >= 0; 
    } 
}); 
की [
+0

यह वही है जो [शंकरसंगोली पोस्ट किया गया] (http://stackoverflow.com/a/8795791/218196)। –

+0

@ फ़ेलिक्सक्लिंग हाँ, यह एक ही चीज़ जैसा प्रतीत होता है। हालांकि मूल लेखक के रेफरी के बिना :) –

संबंधित मुद्दे