javascript - Hide options in a select list using jQuery Redux -


देखें

स्वीकृत उत्तर केवल सादा गलत है; यह क्रॉस-ब्राउज़र संगत नहीं है।

सबसे अधिक वोट वाले समाधान (विकल्प को हटा दें लेकिन पूर्ण सूची का क्लोन रखें) मैं जो कर रहा हूं, लेकिन यह मेरे लिए अब और काम नहीं करेगा । मुझे विभिन्न परिदृश्यों में विकल्प जोड़ना और निकालना होगा, इसलिए यदि मैं पूरी सूची (जो मुझे एजेक्स के माध्यम से मिलती है) के साथ सूची को बदल देती है तो मुझे उसके विकल्प को पाने के लिए फिर से फ़िल्टर करना होगा, जो मैं वास्तव में चाहता हूं ... और ये सभी चयन अन्य चयनों पर आधारित हैं, इसलिए यह वास्तव में गंदे हो जाता है।

मेरा सवाल है, क्या ऐसा प्लगइन है जो वास्तव में डोम से विकल्प निकाल देगा, लेकिन उनकी स्थिति याद रखेंगे ताकि आसानी से हो सके बाद में एक ही स्थान पर जोड़ा? इस प्रकार एक क्रॉस-ब्राउज़र छिपाना / विकल्प के लिए दिखाएं?

  (फ़ंक्शन ($) { $ .fn.hideOption = function (val) {var lastPos = 0; $ (this)। बच्चे ('विकल्प')। प्रत्येक (फ़ंक्शन () {var pos = $ (this) .डेटा ('prevPos'); यदि (; Pos) $ (यह) .डेटा ('प्रॉपपोज', आखिरी पीओएस ++); और पिछला पीओएस = पिन + 1;}); var विकल्प = $ (यह)। बच्चे ('विकल्प [मूल्य = "' + वैल + '"] '' ('छिपा हुआ विकल्प'); अगर (! छिपा हुआ विकल्प) छिपा हुआ विकल्प = विकल्प; छिपा हुआ विकल्प = छिपा हुआ विकल्प.एड (विकल्प); $ (यह) .डेटा ('छिपी हुई विकल्प', छिपाई विकल्प) ; Options.detach ();}; $ .fn.showOption = function (val) {var छुपा विकल्प = $ (यह) .डेटा ('छिपी विकल्प); अगर (! छिपी विकल्प) वापस; var toAdd = null; यदि (typeof (वैल)! == 'अपरिभाषित') {toAdd = hiddenOptions.filter (function () {return $ (this) .val () == val;});} else {toAdd = hiddenOptions;} छिपा हुआ विकल्प = छिपा हुआ विकल्प। नहीं (ToAdd); $ (यह) .डेटा ('छिपी हुई विकल्प', छिपी हुई विकल्प); var दृश्यमान विकल्प = $ (यह)। चाइल्ड रेन (); Var चुनें = यह; Var मान = $ (यह) .val (); ToAdd.each (फ़ंक्शन (आई, एचआईडओओपीटी) {var optAdded = false; दिखाई देने वाला विकल्प। ईकाई (फ़ंक्शन (जे, वीओओपीटी) {if ($ (hidOpt)। डेटा ('पीटीपीओएस') & gt; = $ (visOpt)। डेटा 'PrevPos')) {$ (hidOpt) .inertAfter (visOpt); optAdded = true; return;}}); यदि (! ऑप्ट एडडेड) $ (hidOpt) .prependTo (चुनें);}); $ (This) .val (मान); }; }) (JQuery);   

कृपया इसे तोड़ने का प्रयास करें या सुधारने के तरीकों का सुझाव दें।

Comments