2011-03-31 12 views
7

का फ़ंक्शन सीमा शामिल है: यह निर्णय लेने के लिए फ़ंक्शन शामिल है कि किसी चयन पर कौन सा विकल्प किसी SESSION चर से चुना गया है।JQuery: JQuery का उपयोग कर सटीक मिलान

समारोह गलत विकल्प एक विकल्प 'PADI ओपन जल' है के रूप में उनके और एक अन्य 'PADI ओपन जल स्कूबा प्रशिक्षक'

कैसे हम इसे सटीक सामग्री और कोई और अधिक मैच के लिए सीमित कर करते मिलान होता है?

$('option:contains("<?php echo $_SESSION['divelevel'];?>")').attr('selected', 'selected'); 
+0

तुम्हारा मतलब नहीं है '$ ('विकल्प: शामिल (" <$ _SESSION [गूंज PHP? 'divelevel'];?> ") ')'? –

+0

हां मेरा मतलब था। और यह वास्तविक पृष्ठ पर भी लिखा गया है। मेरी गलती –

उत्तर

13

अपने इच्छित विकल्प को खोजने के लिए .filter() का उपयोग करने का प्रयास करें।

$('option').filter(function(){ 
    return $(this).html() == "<?php echo $_SESSION['divelevel'];?>"; 
}).attr('selected', 'selected'); 
+0

धन्यवाद! मुझे जो चाहिए वह करने के लिए मुझे सही रास्ते पर मिला: $ ("# काउंटीआईडी ​​विकल्प")। फ़िल्टर (फ़ंक्शन() { $ (यह) .html() == काउंटी चयन करें})। attr ('चयनित' , 'चयनित'); –

+0

@ जैमीएम: आपका स्वागत है :-) –

0

रॉकेट Hazmat का जवाब मेरे वर्तमान परियोजना है, जहां एक कुकी मान सेट किया गया है और तालिका की उस पंक्ति है कि कुकी मूल्य की जरूरत पर प्रकाश डाला जाना करने के लिए से संबंधित है पर मेरी मदद करने में सक्षम था। कोड मैं मूल रूप से किया था:

$(".datalist TBODY TR:has('TD.itemId:contains(" + activeRowCookie + ")')").attr('id', 'activeRow'); 

कौन सा ठीक काम किया जब तक हम महसूस किया कि एक तालिका सेल प्लस अन्य पात्रों activeRowCookie मान सकता है, लेकिन हम सेल की संपूर्ण सामग्री के लिए एक सटीक मिलान की जरूरत है। इसके अलावा, हम सेल की तलाश कर रहे हैं जिसमें उस सटीक मूल्य और अधिक नहीं है, लेकिन फिर हम पंक्ति को हाइलाइट करते हैं कि सेल केवल सेल ही नहीं है। तो मैं निम्नलिखित करने के लिए यहाँ जवाब अनुकूल काम करने के लिए मिल गया:

$('.datalist TBODY TR TD.itemId').filter(function() { 
    return $(this).text() == activeRowCookie; 
}).parent().attr('id', 'activeRow'); 

और, हाँ, कि प्रारंभिक चयनकर्ता ऐसे ही होने की जरूरत है क्योंकि हम इसे THEAD तत्व में कोशिकाओं को देख नहीं करना चाहती।

0

प्रयास करें एक विस्तार छद्म समारोह जोड़ें:

$.expr[':'].textEquals = $.expr.createPseudo(function(arg) { 
    return function(elem) { 
     return $(elem).text().match("^" + arg + "$"); 
    }; 
}); 

तो फिर तुम कर सकते हैं:

$('p:textEquals("<?php echo $_SESSION['divelevel'];?>")').attr('selected', 'selected');