将Div转换为下拉菜单

时间:2012-08-10 06:43:50

标签: jquery html

我有2 Div标记设置如下

<div id="testing1" >
   <div id="newpar" >
      <div  id="1" > 1 </div>
      <div  id="2" > 2 </div>
      <div  id="3" > 3 </div>
      <div  id="4" > 4 </div>
    </div>
</div>

<div id="testing2" >
    <div id="newpar" >
      <div  id="1" > 1 </div>
      <div  id="2" > 2 </div>
      <div  id="3" > 3 </div>
      <div  id="4" > 4 </div>
    </div>
</div>

我需要将div id newpar转换为drop down menu(选择菜单)。是可能的......

3 个答案:

答案 0 :(得分:5)

试试这个:

var sel = $('<select id="tesing2"/>');
$('#testing2 div').each(function(){
    sel.append('<option value='+this.id+'>'+this.innerHTML+'</option>')
})  
$('#testing2').replaceWith(sel)  

DEMO

由于ID必须是唯一的,您可以使用类来代替:

<div id="testing2">
    <div class="newpar">
      <div  id="1"> 1 </div>
      <div  id="2"> 2 </div>
      <div  id="3"> 3 </div>
      <div  id="4"> 4 </div>
    </div>
</div>

var sel = $('<select id="tesing"/>');
$('#testing2 > div > div').each(function(){
    sel.append('<option class='+this.parentNode.className+'>'+this.innerHTML+'</option>')
})

$('#testing2 > div').replaceWith(sel)  

http://jsfiddle.net/DdC5C/4/

答案 1 :(得分:1)

纯css回答:http://jsfiddle.net/Wycbd/1/

只有几点:id不能以数字开头,而且必须是唯一的。在我的小提琴中,我将id="1" id="2"更改为class="one" class="two"

答案 2 :(得分:1)

这很容易:)

$(function() {
    var id2convert = "testing2",
        divs = $("div", "#" + id2convert),
        select = $("<select id=\"" + id2convert + "\">");

    divs.each(function() {
        var text = $(this).text();
        select.append("<option value=\"" + text + "\">" + text + "</option>");
    });

    divs.parent().replaceWith(select);
})

fiddle