2011-11-22 21 views
8

कृपया उदाहरण पर एक नज़र डालें: http://jsfiddle.net/HHDpK/1/

जैसा कि आप देख दो चयनक बीच का अंतर केवल लाइन है

$("#chooser-1 .y").removeAttr("selected"); 

लेकिन एक के रूप में परिणाम उनके राज्य अलग हैं (विशेष रूप से क्रोम में)। क्या मुझे कुछ याद आ रहा है, या यह एक बग है?

उत्तर

5

गुणों के साथ jQuery की आंतरिक बग की तरह दिखता है।

ध्यान दें कि पुराने संस्करणों में, .prop() से पहले 1.6 संस्करण में पेश किया गया था, यह works as expected है।

नए संस्करण में, बस .prop() का उपयोग तत्वों के ऐसे गुणों से निपटने के लिए:

$("#chooser-1 .x").prop("selected", "selected"); 
$("#chooser-1 .y").removeProp("selected"); 

jsFiddle update

इससे अधिक - .removeProp("selected") का उपयोग prop() के साथ पहले चयनित तत्व पर मूल चयन का चयन करने के बजाय मूल चयन का कारण बन जाएगा - आदर्श व्यवहार।

+0

धन्यवाद, धन्यवाद, मैंने वास्तव में अपने कोड में 'prop' का उपयोग करने का निर्णय लिया है। – Maxim

+1

हालांकि यह काम करेगा लेकिन प्रोप() एचटीएमएल विकल्प तत्व में चयनित विशेषता सेट नहीं है, इसलिए मैं इन दोनों का उपयोग कर रहा हूं {.removeProp ('चयनित')। RemoveAttr ('चयनित')} और {.prop (' चयनित ',' चयनित ')। attr (' चयनित ',' चयनित ')} – QMaster

2

मुझे पता चला कि उपर्युक्त उत्तर भी असफल रहा है, मुझे चुने गए आइटमों को प्राप्त करने के लिए झूठा साबित करना पड़ा।

$("#chooser-1 .x").prop("selected", false); 

निकालेंप्रॉप अवांछित प्रभावों का कारण बनता है जैसे विकल्प फिर से चयन करने में सक्षम नहीं हैं।

मैं jquery 1.6.2

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