.navbar-expand{-sm|-md|-lg|-xl}
const textarea = document.createElement('TEXTAREA');
document.querySelector('body').appendChild(textarea);
textarea.innerHTML = '';
const el = document.querySelectorAll('*');
var css_list = '';
for(var i = 0; i < el.length; i++){
if(el[i].id!==''){
textarea.innerHTML += '#'+el[i].id+'{}\n';
}
if(el[i].classList.length > 0){
for(var c = 0; c < el[i].classList.length; c++){
textarea.innerHTML += '.'+el[i].classList[c]+'{}\n';
console.log(el[i].classList[c]);
}
}
}
<div class="out"></div>
<!-- пустой div для вывода данных-->
// в скобках JSON.parse() ответ сервера json
const answer = JSON.parse('[{"conf":{"type":"text","tech_type":"js","parser":"jq","comm1":"5mr","comm2":"priv","name":"Petr","f_name":"Ivanov","enable":"no"}}]')[0].conf;
const out = document.querySelector('.out'); // находим div
out.innerHTML =''; // очищаем его
for (key in answer) { //перебираем объект
out.innerHTML += '<div id="'+key+'">'+answer[key]+'</div>'; добавляем внутрь out
}
echo "<script>const tg_href = 'tg://resolve?domain=" . $config['bot'] . "&start=" . $key . "&id=auth';</script>";
<button onclick="window.open('tg_href');"
<li data-filter="">
<li data-target="">
$("#grid-filter li").click(function() {
var group = $(this).data('target');
var group_class = "." + group; // БЫЛО по классу (переменную назовите group_attr чтоб не вспоминать через год)
var selector = '[data-filter~="' + group + '"]'; // по атрибуту - (меньше селектор = меньше проверок)