दिलचस्प पोस्ट
सरल एनीमेशन का उपयोग टिनकेनेटर जावास्क्रिप्ट – एक स्ट्रिंग से चरित्र निकालें सी में एक स्टैक ट्रेस कैसे पकड़ सकता है? JavaFX – SQL क्वेरी के लिए पृष्ठभूमि थ्रेड क्या एचटीएमएल 5 मार्गों का उपयोग करते समय काजल 2 के राउटर का टूटना है? Setup.py के साथ गैर-पायथन फ़ाइलों को शामिल करना 64 बिट पर हस्ताक्षर न किए गए 64 बिट अपरिभाषित व्यवहार के कारण? जब मैं एक ड्रैग-योग्य क्लोन करता हूं और इसे ड्रॉपपॉबल में छोड़ देता हूं तो मैं इसे फिर से नहीं खींच सकता `अपप्ली '` सेप्पी' से ज्यादा क्यों सुरक्षित है? क्या क्लाइंट साइड पर हैशिंग पासवर्ड लायक है? जावा में 'पर्मस्इज़' क्या है? कोणीय 2: कस्टम अपवादहैंडलर परिवर्तन जांच का अंतराल सी में स्ट्रिंग्स के लिए पॉइंटर की तुलना कैसे करें JQuery का उपयोग कर चेकबॉक्स पर चेक / अनचेक किए गए राज्यों पर एक तत्व कैसे दिखाना / छुपाएं? सीएसवी प्रारूप में एक स्प्रैडशीट डाउनलोड करने के लिए Google ड्राइव एपीआई का उपयोग करना

Jquery का उपयोग करके एक unordered सूची में <select> dropdown को कैसे परिवर्तित करें?

मैं इस प्रारूप में एक ड्रॉपडाउन कैसे परिवर्तित करूं:

<select id="yearfilter" name="yearfilter"> <option value="">All years</option> <option value="2011">2011</option> <option value="2010">2010</option> <option value="2009">2009</option> </select> 

इस प्रारूप में एक unordered सूची में:

 <ul id="yearfilter" name="yearfilter"> <li value="">All years</li> <li value="2011">2011</li> <li value="2010">2010</li> <li value="2009">2009</li> </ul> 

jquery का उपयोग ??

Solutions Collecting From Web of "Jquery का उपयोग करके एक unordered सूची में <select> dropdown को कैसे परिवर्तित करें?"

 $('#yearfilter').parent().append('<ul id="newyearfilter" name="yearfilter"></ul>'); $('#yearfilter option').each(function(){ $('#newyearfilter').append('<li value="' + $(this).val() + '">'+$(this).text()+'</li>'); }); $('#yearfilter').remove(); $('#newyearfilter').attr('id', 'yearfilter'); 

यह मैं कैसे करूँगा।

मैं इस समाधान के लिए कुछ घृणा प्राप्त करने जा रहा हूं, लेकिन इसके बारे में क्या?

 var rep = $("select") .clone() .wrap("<div></div>") .parent().html() .replace(/select/g,"ul") .replace(/option/g,"li"); $("select").replaceWith(rep); 

संपादित करें:

और करीब पांच साल बाद; हाँ, मैं इस उत्तर के लिए खुद से नफरत करता हूँ

यहां कुछ समस्याएं हैं क्या होगा यदि आपके पास इस सूची में कोई विकल्प होता है: <option value="5">With optional engraving</option> आपको <li value="5">With lial engraving</li> के साथ मिल जाएगा यहां वेनिला जावास्क्रिप्ट का एक विकल्प है (क्योंकि jQuery वास्तव में इसका समर्थन नहीं करता है)

 var parent = document.querySelector('select'), docFrag = document.createDocumentFragment(), list = document.createElement('ul'); // build list items while(parent.firstChild) { // we simultaniously remove and store the node var option = parent.removeChild(parent.firstChild); // not interested in text nodes at this point if(option.nodeType !== 1) continue; // lets build a list item var listItem = document.createElement('li'); // we loop through the properties of the node and // apply only the ones that also exist as atributes for(var i in option) { if(option.hasAttribute(i)) listItem.setAttribute(i, option.getAttribute(i)); } // loop through the select children to append to the // list item. We want text nodes this time. while(option.firstChild) { listItem.appendChild(option.firstChild); } // append them to the document fragment for easier // appending later docFrag.appendChild(listItem); } // build wrapping ul. Same as above for(var i in parent) { if(parent.hasAttribute(i)) list.setAttribute(i, parent.getAttribute(i)); } // add the list items to the list list.appendChild(docFrag); // lastly replace the select node with the list parent.parentNode.replaceChild(list, parent); 
 <select id="yearfilter" name="yearfilter"> <option value="">All years</option> <option value="2011">2011</option> <option value="2010">2010</option> <option value="2009">2009</option> </select> 

आप <select> element को बदलने के लिए <option> तत्वों से <li> तत्वों को बनाने के लिए मानचित्र () का उपयोग कर सकते हैं, और प्रतिस्थापित कर सकते हैं ()

 var $yearFilter = $("#yearfilter"); $yearFilter.find("option").map(function() { var $this = $(this); return $("<li>").attr("value", $this.attr("value")).text($this.text()).get(); }).appendTo($("<ul>").attr({ id: $yearFilter.attr("id"), name: $yearFilter.attr("name") })).parent().replaceAll($yearFilter); 

आप इस बेला में परिणाम देख सकते हैं

name विशेषताओं को ul करने के लिए कोई भी कारण नहीं है, न ही li टैग के लिए value एट्रिब्यूट्स।

इसे आज़माएं: http://jsfiddle.net/vfjfk/2/

 $(function(){ var id = "yearfilter"; $('#'+id).after("<ul id='temp' />") .children("option").each(function() { $("#temp").append("<li>"+$(this).text()+"</li>"); }) .end().remove(); $('#temp').attr("id",id); }); 

अगर आपको वास्तव में बेकार विशेषताओं की ज़रूरत है, हालांकि, यह प्रयास करें: http://jsfiddle.net/vfjfk/3/

 $(function(){ var id = "yearfilter"; $('#'+id).after("<ul id='temp' />") .children("option").each(function() { $("#temp").append('<li value="'+$(this).val()+'">'+$(this).text()+"</li>"); }) .end().remove(); $('#temp').attr({"id":id,"name":id}); }); 

ऐसा करने का एक तरीका यहां है:

 var $select = $('#yourSelectElement'), $ul = $('<ul></ul>').attr('id', $select.attr('id')) .attr('name', $select.attr('name')); $select.children().each(function() { var $option = $(this); $('<li></li>').val($option.val()) .text($option.text()) .appendTo($ul); }); $select.replaceWith($ul); 

आप अपने समकक्ष के साथ टैग को बदल देंगे:

  var select = $('#yearFilter'); var ul = $('<ul/>'); ul.attr({ id: select.attr('id'), name: select.attr('name') }); select.find('option').each(function() { var item = $('<li/>'); item.text(this.Text).val(this.val()); ul.append(item); }); $('#yearFilter').replaceWith(ul);