我想从列表项中获取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;
}
答案 0 :(得分:1)
您可以使用.attr()设置属性值,并使用函数作为第二个参数,以便为每个锚点调用
但是你需要只定位菜单内的锚点,所以假设你有一个分配给ul
的类(在下面的代码中假设mymenuclass
是分配给ul的类)< / p>
$('.mymenuclass a').attr('data-menuanchor', function () {
return $.trim($(this).text());
})