2012-08-14 10 views
9

द्वारा चयन विकल्प ढूंढें कोई मुझे बता सकता है कि यह jQuery के पुराने संस्करणों (उदा। 1.4.2) में क्यों काम करता है लेकिन यदि आप बाद के संस्करण पर स्विच करते हैं, उदा। (1.6 +) यह काम करना बंद कर देता है?टेक्स्ट

http://jsfiddle.net/nmvf6/1194/

$(function(){ 
    $('#my_button').click(function(){ 
     var unitName = "Unit2"; 
     $('.assUnit').find('option[text="'+unitName+'"]').remove(); 
    }); 

}); 

मैं बाद के संस्करणों के लिए कंसोल में त्रुटि उत्पादन जाँच की है, और एक त्रुटि, पृष्ठ लोड पर घटित करने लगता है इससे पहले कि मैं भी जहाँ तक मिल गया है यह मेरी स्क्रिप्ट लोड और बटन पर क्लिक करें करने में सक्षम होने ..

जब मैं उदाहरण के लिए 1.8.0 के लिए संस्करण बदल सकते हैं और पेज भागो, this error मेरी ओपेरा स्क्रिप्ट कंसोल में आता है के रूप में:

/

धन्यवाद:

http://s15.postimage.org/5yhodvirt/ess.png

जो एक "mootools" file..but मैं mootools का चयन नहीं किया में हो रहा है, मैं jQuery 1.8.0

का चयन किया।

+5

हाहा, आपने कहा 'assUnit'। – RubeOnRails

उत्तर

13

आप Attribute Equals चयनकर्ता जो तत्व एक मूल्य के साथ निर्दिष्ट विशेषता है कि वास्तव में एक निश्चित मूल्य के बराबर का चयन करता है का उपयोग कर रहे , विकल्प तत्वों text गुण नहीं है, आप :contains चयनकर्ता के बजाय का उपयोग कर सकते है, इस प्रयास करें:

निर्दिष्ट तत्व वाले सभी तत्वों का चयन करें।

$(function(){ 
    $('#my_button').click(function(){ 
     var unitName = "Unit2"; 
     $('.assUnit').find('option:contains('+unitName+')').remove(); 
    }); 
}); 

FIDDLE

आप तत्व केवल कुछ मूल्य नहीं है का चयन करना चाहते हैं तो आप filter विधि का उपयोग कर सकते हैं:

$(function(){ 
    $('#my_button').click(function(){ 
     var unitName = "Unit2"; 
     $('.assUnit option').filter(function() { 
      return $(this).text() === unitName 
     }).remove(); 
    }); 
}); 

FIDDLE

+0

हाय, मेरी टिप्पणी देखें जिसने सुझाव दिया है –

+0

हम्म, बस कोशिश की लेकिन यह काम नहीं कर रहा है। यद्यपि कोई कंसोल त्रुटियां नहीं मिल रही हैं। संपादित करें: अब इसे काम कर रहा है, "इनपुट" को "विकल्प" में बदलना था धन्यवाद। –

+0

@ user1597762 हां, आपका स्वागत है। – undefined

2

आप शायद इस के साथ और अधिक भाग्य होगा:

$('.assUnit').find('option:contains('+unitName+')').remove(); 

यह भी देखें: :contains() selector

+0

हाय, इसमें कोई अच्छा नहीं है, क्योंकि यह एक सटीक मैच होना चाहिए। उदाहरण के लिए ('यूनिट 2') उदाहरण के लिए 'यूनिट 200' से मेल खाता है और वहां कई सारे चुनिंदा मेनू और विकल्प होंगे। –

0

इस

कोशिश
$(function(){ 
    $('#my_button').click(function(){ 
     var unitName = "Unit2"; 
     $(".assUnit option:contains('"+unitName+"')").remove(); 
    }); 

});