我在prestashop下有一个网站,我的下拉菜单有不同的类别,都是可点击的。我想删除" Marques"的链接。和#34; Les Gammes"类别,只留下文字。我使用each()
函数选择了我的所有类别,但这会在li
内的ul
和li
内返回一个数组。
这是JSFiddle。
这是js代码:
$('jms-mega-menu').ready(function () {
// Get each div
$('.notlink').each(function () {
// Get the content
var str = $(this).text();
$(this).html(str);
});
});
以下是我的html代码示例。你可以在小提琴上找到完整的代码。
<ul jms-mega-menu>
<div>
...
<ul class="mega-nav level1">
<li class=" haschild group notlink"><a id="item-8" href="#">Marques</a>
<ul>
<li><a id="item-9" href="#">Apple</a></li>
<li><a id="item-10" href="#">Samsung</a></li>
</ul>
</li>
</ul>
<ul>
...
答案 0 :(得分:1)
一种解决方案是使用unwrap
从文本周围删除a
标记。请注意,使用.notlink > a
仅影响.notlink
的直接子节点而不是嵌套列表的锚点:
$('.notlink > a').contents().unwrap();
http://jsfiddle.net/orvrj7qs/5/
另一个可以更具扩展性的选项是使用replaceWith
,这样可以在需要时对文本进行其他修改:
$('.notlink > a').replaceWith(function(){
return $(this).text();
});
在这种情况下,我们只需用锚中的文本替换锚。