Микроразметка хлебных крошек 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, время: 06:45. |