我想从一个列表项中获取label'name的值,并将其放入属性data-menuanchor =“”中。
像这样:
<li><a href="#home"> get this ==>Home<== get this </a></li>
==> Place it here <==
<li><a ==>data-menuanchor="Home"<== href="#Home">Home</a></li>
并针对每个列表项执行此操作:
<li><a data-menuanchor="Home" href="#Home">Home</a></li>
<li><a data-menuanchor="Contacts" href="#Contacts">Contacts</a></li>
<li><a data-menuanchor="AboutUs" href="#AboutUs">AboutUs</a></li>
我已经有一个可以暂时使用的功能,但是我必须手动添加每个部分,如下所示:
add_filter( 'nav_menu_link_attributes', 'my_nav_menu_attribs', 10, 4 );
function my_nav_menu_attribs( $atts, $item, $args )
{
// The ID of the target menu item
$Home = 18; //menu ul li ==> id target
$Contacts = 17;
// inspect $item
if ($item->ID == $Home) {
$atts['data-menuanchor'] = 'Home';
}
elseif ($item->ID == $Contacts) {
$atts['data-menuanchor'] = 'Contacts';
}
return $atts;
}
您可以使用.attr()设置属性值,并使用一个函数作为第二个参数,以便每个锚点都可以调用该参数。
但是您将只需要定位菜单中的锚点,因此假设您有一个分配给的类ul
(在下面的代码中假设mymenuclass
是分配给ul的类)
$('.mymenuclass a').attr('data-menuanchor', function () {
return $.trim($(this).text());
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句