2013-03-10 2 views
0

я получил массив, который выглядит следующим образом:Построить уль Ли из массива с помощью JQuery

var myArray = { 
    "ABC.txt": "1", 
    "AD.txt": "2", 
    "uploads/": "1", 
    "uploads/Penguins.jpg": "1", 
    "uploads/Tulips.jpg": "2", 
    "morefiles.txt": "2" 
}; 

Я пытаюсь сделать ul li из него, как это:

<ul> 
    <li> 
    <a href="ABC.txt" pos="1">ABC.txt</a> 
    </li> 
    <li> 
    <a href="AD.txt" pos="2">AD.txt</a> 
    </li> 
    <li rel="folder"> 
    <a href="uploads/" pos="1">uploads</a> 
    <ul> 
     <li> 
     <a href="uploads/Penguins.jpg" pos="1">Penguins.jpg</a> 
     </li> 
     <li> 
     <a href="uploads/Tulips.jpg" pos="2">Tulips.jpg</a> 
     </li> 
    </ul> 
    </li> 
    <li> 
    <a href="morefiles.txt" pos="2">morefiles.txt</a> 
    </li> 
</ul> 

Я пытаясь сделать это до UL LI с помощью jQuery, и я придумал ничего, на самом деле просто обрывки кода ничего не стоят даже здесь.

Прошу немного помочь.

+2

Вы можете посмотреть на шаблонный движке. Один, как Mustache.js или любой другой, поможет вам. – benzonico

ответ

1

Похоже, что вам нужен какой-то шаблонный двигатель. Проверьте ICanHaz, где вы можете иметь что-то вроде:

<script id="user" type="text/html"> 
    <li> 
    <p class="name">Hello I'm {{ name }}</p> 
    <p><a href="http://twitter.com/{{ twitter }}">@{{ twitter }}</a></p> 
    </li> 
</script> 

И сценарий инициализации будет столь же просто, как:

var user = ich.user(user_data_object) 

Кроме того, в этой статье, Client-Side Templating объяснит вам что-то для:

<h1>{{title}}</h1> 
<ul> 
    {{#names}} 
     <li>{{name}}</li> 
    {{/names}} 
</ul> 

Наряду с этим:

var data = { 
    "title": "Story", 
    "names": [ 
     {"name": "Tarzan"}, 
     {"name": "Jane"} 
    ] 
} 

Чтобы быть преобразованы в это:

<h1>Story</h1> 
<ul> 
    <li>Tarzan</li> 
    <li>Jane</ul> 
</ul> 
0

Во-первых, переменная туАггау не является массивом, массив определяется внутри [], поэтому он должен выглядеть как этот

var myArray = [{"ABC.txt" : "1"}, {"AD.txt" : "2"}, {"uploads/" : "1"}, {"uploads/Penguins.jpg" : "1"}, {"uploads/Tulips.jpg" : "2"},{"morefiles.txt" : "2"}]; 

Но чтобы генерировать HTML в вашем вопросе вы, вероятно, лучше со следующей структурой:

var myArray = [ 
    { 
     "href":"ABC.txt", 
     "pos" : "1" 
    },{ 
     "href":"AD.txt", 
     "pos":"2" 
    }, 
    ...etc 
]; 

Затем использовать другой внутренний массив для создания вложенной

Вы можете просто перебрать массив, используя для цикла и добавлять элементы к, как вы идете

+0

Возможно, моя идея была неправильной с первого места, что я делаю, беру ul li, превращая ее в массив с помощью href (сохраняя позиции) и синхронизируя его с другим массивом (из ul). возможно, я должен синхронизировать их без массивов прямо из ul li, но я не могу понять, как это сделать без массива. (это для синхронизации ul li, которая была сохранена для порядка файлов, и сохранения синхронизации с текущим состоянием файлов) – Mike

+0

Que ?? Я думаю, вам нужно прояснить свой вопрос, создаете ли вы массив javascript, или он исходит из внешнего источника? – DaveB

Смежные вопросы