Микроразметка хлебных крошек JS
Добрый день, на сайте хлебные крошки формируются по принципу:
<ul class="breadcrumbs" itemscope="" itemtype="http://schema.org/BreadcrumbList"> ##path## </ul> первый <li> выводиться нормально, а все последующие скриптом: if($('.category-path_type_itemd a').length) { $('.breadcrumbs li:last-child').remove(); $('.category-path_type_itemd a').each(function() { $('.breadcrumbs').append('<li></li>'); $('.breadcrumbs li:last-child').append($(this)); }); $('.breadcrumbs li:last-child a').contents().unwrap(); $('.category-path_type_itemd').remove(); } В итоге все ссылки, кроме первой оборачивается в пустой <li></li>. Подскажите, как в эти <li> добавить <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> |
Цитата:
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> Или к <li> просто "дописать" нужные атрибуты? |
>Или к <li> просто "дописать" нужные атрибуты?
Да! А то они скриптом пустые (<li>) идут |
Цитата:
$('.breadcrumbs').append('<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"></li>')
|
Я это первым делом попробовал, не работает))
|
plaksin.web,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
На сайте хлебные крошки формируются по принципу:
<ul class="breadcrumbs" itemscope="" itemtype="http://schema.org/BreadcrumbList"> ##path## </ul> первый <li> выводиться нормально, в него можно прописать атрибуты, а все последующие скриптом:
if($('.category-path_type_itemd a').length) {
$('.breadcrumbs li:last-child').remove();
$('.category-path_type_itemd a').each(function() {
$('.breadcrumbs').append('<li></li>');
$('.breadcrumbs li:last-child').append($(this));
});
$('.breadcrumbs li:last-child a').contents().unwrap();
$('.category-path_type_itemd').remove();
}
Сама ссылка цепляется из сета в шаблоне: <!--#set var="cat_nav_name;urgent_cat_nav_name" value=" <a href="##script_link####nav_data##" title="##alt##">##name##</a> "--> В итоге все ссылки, кроме первой оборачивается в пустой <li></li>. Подскажите, как в эти <li> добавить атрибуты, что бы ссылка оборачивалась в <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> Так пробовал, не работает:
$('.breadcrumbs').append('<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"></li>')
|
plaksin.web,
можно увидеть структуру ul, html до и после? |
Так и до, и после
![]() |
plaksin.web,
код можно, что есть и что хотите сделать? |
Сейчас вот так формирует:
<ul class="breadcrumbs" itemscope="" itemtype="http://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope="" itemtype="https://schema.org/ListItem">
<a href="" itemprop="item"><span itemprop="name">Главная</span><meta itemprop="position" content="1"></a>
</li>
<li><a href="catalog" title="Каталог"><span itemprop="item"><span itemprop="name">Каталог</span></span><meta itemprop="position" content="2"></a></li>
<li><span itemprop="item"><span itemprop="name">Мешки для мусора</span></span><meta itemprop="position" content="3"></li>
</ul>
А нужно так:
<ul class="breadcrumbs" itemscope="" itemtype="http://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope="" itemtype="https://schema.org/ListItem">
<a href="" itemprop="item"><span itemprop="name">Главная</span><meta itemprop="position" content="1"></a>
</li>
<li itemprop="itemListElement" itemscope="" itemtype="https://schema.org/ListItem">
<a href="catalog" title="Каталог""><span itemprop="item"><span itemprop="name">Каталог</span></span><meta itemprop="position" content="2"></a></li>
<li itemprop="itemListElement" itemscope="" itemtype="https://schema.org/ListItem">
<span itemprop="item"><span itemprop="name">Мешки для мусора</span></span><meta itemprop="position" content="3"></li>
</ul>
|
plaksin.web,
:-?
$(function() {
$("ul.breadcrumbs > li").attr({itemtype : "https://schema.org/ListItem", itemprop : "itemListElement", itemscope : ""})
});
|
plaksin.web,
если что-то не так, то читайте внимательно ... структура до скрипта и после кода скрипта. |
О да! работает, спасибо, только я тупанул:-?
Надо было это добавить: <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> Попробовал по аналогии добавить:
$(function() {
$("ul.breadcrumbs > li").attr({itemprop : "itemListElement", itemscope itemtype : "https://schema.org/ListItem"})
});
Но так, не работает:( |
Аааааааааа, все верно, просто порядок изменился. сорри))))))) Спасибо!
|
Блин, все работает, но валидаторы гугла и яндекса видят только первый <li>, такое ощущение, скрипт добавляет атрибуты, после того как роботы обходят страницу, так как код сформировавшейся страницы они читают без ошибок....
Пробовал вставлять код и в <ahead></ahead> и в начало, и в конец страницы, тоже самое..... Можно как то сделать, что бы скрипт грузился раньше? |
plaksin.web,
формируйте страницу как нужно на сервере, роботам влом запускать ваши скрипты. |
Страницу формирует CMS наверное... Может это через PHP можно сделать? Ну если это конечно, решит проблему....
|
| Часовой пояс GMT +3, время: 22:57. |