#php #jquery
#php #jquery
Вопрос:
Я пытаюсь сгенерировать многомерный массив с идентификаторами ul и li в jquery, чтобы передать его в файл php.
<ul id="U1">
<li id="L1"></li>
</ul>
<ul id="U2">
<li id="L2"></li>
<li id="L3"></li>
</ul>
<ul id="U3">
<li id="L4"></li>
<li id="L5"></li>
<li id="L6"></li>
</ul>
var ul_arr = [];
$('ul').each(function () {
var ul_id = $(this).attr('id');
ul_arr.push(ul_id);
var li_arr = [];
$(this).find('li').each(function () {
var li_id = $(this).attr('id');
li_arr.push(li_id);
});
ul_arr[ul_id].push(li_arr);
});
Я хотел бы получить такой массив:
[U1 => array[L1], U2 => array[L2, L3], U3 => array[L4, L5, L6]].
У меня проблема с установкой id в качестве ключа в массиве. Это не работает.
Как это решить? Заранее спасибо!
Ответ №1:
Вы можете использовать .map()
для преобразования каждого подмассива <li>
в массив их идентификаторов:
var uls = {};
$('ul').each(function () {
uls[$(this).attr('id')] = $(this).find('li').map(function () {
return $(this).attr('id');
}).get();
});
console.log(uls);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="U1">
<li id="L1"></li>
</ul>
<ul id="U2">
<li id="L2"></li>
<li id="L3"></li>
</ul>
<ul id="U3">
<li id="L4"></li>
<li id="L5"></li>
<li id="L6"></li>
</ul>
Комментарии:
1. Работает! Большое спасибо!