我有一个生成的导航,第一个n项的前面有_
,总是位于列表的首位。我现在想要完成的是从站点的前端删除该_
。
我试着用下面的jQuery代码来完成这个任务,但是它也改变了其他nav条目的文本。
参见JS Fiddle:https://jsfiddle.net/1fz661o4/上的完整标记
代码:
$(function() {
$('.dropdown-submenu').html($('.dropdown-submenu').html().replace(/\_/g,''));
});
发布于 2016-11-17 16:47:41
你可以把它更改成在锚上循环。
$(function() {
$('.dropdown-submenu > a').each(function() {
$(this).text($(this).text().replace(/\_/g, ''));
});
});
发布于 2016-11-17 16:47:06
基本上,您只想删除.dropdown-submenu
的直接子锚中的下划线吗?在你的小提琴里,用$('.dropdown-submenu')
代替$('.dropdown-submenu > a')
。
JSFiddle:https://jsfiddle.net/26qLofz8/
$(function() {
$('.dropdown-submenu > a').html($('.dropdown-submenu > a').html().replace(/\_/g,''));
});
编辑:
在你回答之后,现在的问题已经很清楚了。为了防止您的<li>
成为软件一,您需要遍历所有要替换的元素,如下所示:
$(function() {
$('.dropdown-submenu > a').each(function(i, el) {
$(el).html($(el).html().replace(/\_/g,''));
});
});
JSFiddle:https://jsfiddle.net/n7ms67k0/
发布于 2016-11-17 16:47:31
可以将.html()
重载与提供现有html的函数一起使用:
$('.dropdown-submenu').html(function(index, html) { return html.replace(/\_/g,''); });
更新小提琴:https://jsfiddle.net/1fz661o4/2/
或者,您可以循环遍历每条记录:
$('.dropdown-submenu').each(function() {
$(this).html($(this).html().replace(/\_/g,''));
});
https://stackoverflow.com/questions/40660325
复制相似问题