दिलचस्प पोस्ट
उपयोगकर्ता इनपुट प्राप्त करना IPhone नेविगेशन बार पर पृष्ठभूमि छवि कैसे जोड़ें? JSF2.0 से दृश्य परिभाषा भाषा के रूप में जेएसपी पर क्यों फेसलेट पसंदीदा हैं? दो एक्सएमएल फ़ाइलों को एक में संयोजित करने का सबसे तेज़ तरीका क्या है PHP: अपवाद बनाम त्रुटियाँ? मैं स्विफ्ट में टाइप के शब्दकोश में क्लास <ClassImplementingProtocol> प्रकार के मान को कैसे संग्रहीत करूँ? डी 3.जेएस वस्तुओं में हाइपरलिंक्स एक चर से बैच निकालें पथ और फ़ाइल नाम स्थानीय स्ट्रिंग को एक टुकड़ा (& str) के रूप में लौटाएं टॉमकेट 5.5 जेवीएम मेमोरी सेटिंग्स को कॉन्फ़िगरेशन प्रोग्राम का उपयोग किए बिना कैसे ट्यून करें जस्पर रिपोर्ट्स के साथ JVM के लिए फ़ॉन्ट उपलब्ध नहीं है एक ज़िम्मेदार संख्या तक गिना जाने के लिए jQuery काउंटर javax.mail.AuthhenticationFailed जावा में ईमेल भेजने के दौरान एक्सपेशशन फेंका गया है == और .equals () जावा में काम नहीं कर रहे हैं दस्तावेज़ के बीच अंतर। फ़्रेड एंड फ़ंक्शन

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 का उपयोग ??

वेब के समाधान से एकत्रित समाधान "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);