2009-12-10 16 views
5

मेरे पास पाठ के साथ एक एंकर टैग है और मैं यह जांचना चाहता हूं कि दिए गए var स्ट्रिंग को बिल्कुल ठीक से मेल खाते हैं या नहीं।jQuery टेक्स्ट मिलान

यह काम करता है, लेकिन मैं इसमें से कुछ का उपयोग करना चाहता हूं, क्योंकि यदि दिए गए स्ट्रिंग में दो तत्व मिलेंगे। मैं इसे बिल्कुल मिलान करना चाहता हूं।

कोई विचार?

function test(submenu){ 
$('a:contains("' + submenu + '")', 'ul.subMenu li').css('font-weight', 'bold'); 
} 

उत्तर

15

आप अपने चयनकर्ता परिणाम सेट में एक कस्टम फ़िल्टर लागू करने के लिए :contains फ़िल्टर के बजाय .filter() फ़ंक्शन का उपयोग कर सकते हैं।

इस मामले में एक सटीक मिलान के साथ पाठ देखने के लिए एक कस्टम फ़िल्टर लागू करें। कुछ ऐसा:

$('a').filter(function (index) { 
    return $(this).text() == submenu; 
}) 
    .css('font-weight', 'bold'); 
+1

यदि सीमा सफेद जगह को अनदेखा करने की आवश्यकता है तो बस इस तरह ट्विक करें: $ .trim ($ (this) .text()) == सबमेनू – micahwittman

2

क्या यह आप जो खोज रहे हैं:

function test(submenu) 
{ 
    if ($("ul.submenu li a").text() == submenu) 
    { 
     // do whatever here 
    } 
} 

हालांकि, मुझे यकीन है कि आप द्वारा क्या मतलब है नहीं कर रहा हूँ, "यह काम करता है, लेकिन मैं शामिल अलावा कुछ प्रयोग करना चाहते हैं, चूंकि इसमें दिए गए स्ट्रिंग वाले दो तत्वों से मिलान होगा। मैं इसे बिल्कुल मिलान करना चाहता हूं। "

+1

शायद आप '=' ''= 'के साथ' = 'को प्रतिस्थापित करना चाहते हैं। ;) –

+0

अगर सबमेनू = 'समाचार' तो यह पाठ 'समाचार' और 'परीक्षण समाचार' के साथ एक लिंक से मेल खाता है, इसलिए दोनों को सीएसएस लागू करना। – Gabe

+2

या बेहतर अभी तक: === – cobbal

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