2015-03-02 1 views
0

Первоначально, я сгенерировал dropdown menu:Как я могу динамически создать раскрывающееся меню в JavaScript?

Я добавил более подробную информацию о том, как я хочу создать выпадающее меню.

 <div class="well sidebar-nav"> 
      <img src="building.gif" style="display: block;margin-left:auto; margin-right:auto;max-width:100%; max-height:100%;" /> 
      <div class="dropdown" style="padding-left: 20px; padding-top:5px;"> 
       <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" style="display: block;margin-left:auto; margin-right:auto;"> 
        Select A Building 
        <span class=" caret"> 
        </span> 
       </button> 

       <ul id="myul" class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1"></ul> 

      </div> 
     </div> 
    </div><!--/span2--> 

Теперь, я написал следующий код:

var buildingList=[ 
      { 
      "BuildingName": "Adler Journalism and Mass Communication Building", 
      "BuildingNumber": "0456" 
      }, 
      { 
      "BuildingName": "Art Building", 
      "BuildingNumber": "0021" 
      } 
    ]; 

    <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" style="display: block;margin-left:auto; margin-right:auto;"> 
         Select A Building 
         <span class=" caret"> 
         </span> 
        </button> 
    <ul id="myul" class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1"> 
    </ul> 

    <script type="text/javascript"> 
     var out = ""; 
     var ul = document.getElementById("myul"); 
     for (i = 0; i < buildingList.length; i++) { 
       out = ' <li role="presentation"><a role="menuitem" tabindex="-1" href=" ' + buildingList[i].BuildingName + ' "> ' + buildingList[i].BuildingName + ' </a></li>'; 
       var li = document.createElement("li"); 
       var t = document.createTextNode(out); 
       li.appendChild(t); 
       ul.appendChild(li); 
    } 
    </script> 

Я хотел бы генерировать dropdown список динамически на основе buildingList массива с помощью javascript, вы можете помочь мне?

Заранее благодарен!

+0

Чем лучше идея заключается в использовании выберите тег, и жёстко в выберите синтаксис в виде строки и добавить дочерние элементы я означают опции drodown внутри вашего цикла for, создайте div в html и, наконец, вы можете сделать свой внутренний кодHTML. div –

ответ

1

Вы можете попробовать что-то вроде этого.

$.each(buildingList, function (index, value) { 
    $(".dropdown-menu").append($("<li>").text(value.BuildingName)); 
}) 

Я создал скрипку, чтобы вы могли видеть.

https://jsfiddle.net/bcub7wsL/1/

Я изменил скрипку так, что он просто использует простой Javascript

http://jsfiddle.net/ha80r95b/

+1

Спасибо за ваше предложение. Я думаю, что это очень ценно для меня. Хотя я думаю, что я должен рассказать вам больше о том, как я хотел бы создать свое раскрывающееся меню. Я изменил свой пост и добавил более подробную информацию об этом. Не могли бы вы быстро взглянуть и наставить мне больше? Огромное спасибо!!! –

+0

Так что я немного изменил скрипку. Я думаю, что это больше того, что вы ищете. Пожалуйста, голосуйте, если это вам поможет. – R4nc1d