1

私はDiv以下のように2つのタグセットを持っています

<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>

</ p>

(メニューの選択) としdivてを持っているものを変換する必要があります。それは可能ですか...id newpardrop down menu

4

3 に答える 3

5

これを試して:

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

デモ

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/

于 2012-08-10T07:10:51.140 に答える
1

純粋なCSSの答え:http://jsfiddle.net/Wycbd/1/

そして、ほんの2、3のポイント:IDは数字で始めることはできず、一意である必要があります。私のフィドルでは、私はに変更しid="1" id="2"ましたclass="one" class="two"

于 2012-08-10T07:03:43.580 に答える
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);
})

フィドル

于 2012-08-10T07:03:54.143 に答える