Мне нужно построить JSON
динамически.
JSON
работает, если он не динамический.
Вот рабочий пример, но "@id"
и "name"
не являются динамическими:
var el_2 = document.createElement('script');
el_2.type = 'application/ld+json';
el_2.text = JSON.stringify({
"@context": "http://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"item": {
"@id": "https://example.com/",
"name": "Home",
}
}, {
"@type": "ListItem",
"position": 2,
"item": {
"@id": "https://example.com/text_1",
"name": "Text_1",
}
}, {
"@type": "ListItem",
"position": 3,
"item": {
"name": "Text_2",
}
}
}]
});
document.querySelector('head').appendChild(el_2);
Мне нужно сделать его динамическим.
Я использую функцию jQuery’s each()
, чтобы перебрать каждый элемент хлебной крошки.
Затем я помещаю элемент в массив:
var array_breadcrumb_text = [];
$('.region-breadcrumb .breadcrumb li').each(function(index, value) {
array_breadcrumb_text.push($(this).find("a").attr('href') + ' : ' + $(this).text());
// output of links and text is correct
console.log(array_breadcrumb_text[index]);
});
Я не знаю, как использовать этот массив для построения JSON.
Обычно я использую цикл foreach
, но поскольку я нахожусь внутри JSON.stringify()
, я не могу использовать цикл foreach
, потому что у меня есть проблема с синтаксисом.
Вот структура HTML крошки
<ol class="breadcrumb">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/text_1">Text_1</a>
</li>
<li class="active">
Text_2
</li>
</ol>