Javascript 每个 () 函数删除 link
Javascript each() function remove link
我在 prestashop 下有一个网站,我的下拉菜单有不同的类别,都可以点击。我想从 "Marques" 和 "Les Gammes" 类别中删除链接,只保留文本。我正在使用 each()
函数来 select 我所有的类别,但是这个 returns 是 li
中的数组和 [=15= 中的 ul
].
这里是 JSFiddle.
这里是js代码:
$('jms-mega-menu').ready(function () {
// Get each div
$('.notlink').each(function () {
// Get the content
var str = $(this).text();
$(this).html(str);
});
});
这是我的 html 代码示例。您可以在 fiddle.
上找到完整代码
<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>
...
一种解决方案是使用 unwrap
删除文本周围的 a
标签。请注意 .notlink > a
的使用仅影响作为 .notlink
的直接子节点的锚点,而不影响嵌套列表:
$('.notlink > a').contents().unwrap();
http://jsfiddle.net/orvrj7qs/5/
另一个可能更具扩展性的选项是使用 replaceWith
,这将允许您在需要时对文本进行额外的修改:
$('.notlink > a').replaceWith(function(){
return $(this).text();
});
在这种情况下,我们只需将锚点替换为锚点内的文本即可。
我在 prestashop 下有一个网站,我的下拉菜单有不同的类别,都可以点击。我想从 "Marques" 和 "Les Gammes" 类别中删除链接,只保留文本。我正在使用 each()
函数来 select 我所有的类别,但是这个 returns 是 li
中的数组和 [=15= 中的 ul
].
这里是 JSFiddle.
这里是js代码:
$('jms-mega-menu').ready(function () {
// Get each div
$('.notlink').each(function () {
// Get the content
var str = $(this).text();
$(this).html(str);
});
});
这是我的 html 代码示例。您可以在 fiddle.
上找到完整代码<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>
...
一种解决方案是使用 unwrap
删除文本周围的 a
标签。请注意 .notlink > a
的使用仅影响作为 .notlink
的直接子节点的锚点,而不影响嵌套列表:
$('.notlink > a').contents().unwrap();
http://jsfiddle.net/orvrj7qs/5/
另一个可能更具扩展性的选项是使用 replaceWith
,这将允许您在需要时对文本进行额外的修改:
$('.notlink > a').replaceWith(function(){
return $(this).text();
});
在这种情况下,我们只需将锚点替换为锚点内的文本即可。