मेरा सुझाव है कि आप उन समाधानों का उपयोग न करें जो एक <span>
आवरण का उपयोग करते हैं क्योंकि यह मान्य HTML नहीं है, जिससे सड़क पर समस्याएँ हो सकती हैं। मुझे लगता है कि पसंदीदा समाधान वास्तव में किसी भी विकल्प को हटाने के लिए है जिसे आप छिपाना चाहते हैं, और उन्हें आवश्यकतानुसार पुनर्स्थापित करें। JQuery का उपयोग करना, आपको केवल इन 3 कार्यों की आवश्यकता होगी:
पहला फ़ंक्शन चयन की मूल सामग्री को बचाएगा । बस सुरक्षित होने के लिए, आप पेज लोड करने पर इस फ़ंक्शन को कॉल करना चाह सकते हैं।
function setOriginalSelect ($select) {
if ($select.data("originalHTML") == undefined) {
$select.data("originalHTML", $select.html());
} // If it's already there, don't re-set it
}
यह अगला फ़ंक्शन उपरोक्त फ़ंक्शन को यह सुनिश्चित करने के लिए कहता है कि मूल सामग्री सहेज ली गई है, और फिर बस डोम से विकल्प हटा दिए जाते हैं।
function removeOptions ($select, $options) {
setOriginalSelect($select);
$options.remove();
}
जब भी आप सभी मूल विकल्पों पर वापस "रीसेट" करना चाहते हैं, तो अंतिम फ़ंक्शन का उपयोग किया जा सकता है।
function restoreOptions ($select) {
var ogHTML = $select.data("originalHTML");
if (ogHTML != undefined) {
$select.html(ogHTML);
}
}
ध्यान दें कि इन सभी कार्यों से उम्मीद है कि आप jQuery तत्वों में पास हो रहे हैं। उदाहरण के लिए:
// in your search function...
var $s = $('select.someClass');
var $optionsThatDontMatchYourSearch= $s.find('options.someOtherClass');
restoreOptions($s); // Make sure you're working with a full deck
removeOptions($s, $optionsThatDontMatchYourSearch); // remove options not needed
यहाँ एक काम कर उदाहरण है: http://jsfiddle.net/9CYjy/23/