使用javascript删除特定HTML实体(breadcrumb)的最后一个实例
我需要删除的最后一个实例使用javascript删除特定HTML实体(breadcrumb)的最后一个实例,javascript,regex,entities,breadcrumbs,Javascript,Regex,Entities,Breadcrumbs,我需要删除的最后一个实例 > 发件人: 但是,经过几次迭代后,我在一行中得到了多个>>>之间没有链接,您可以这样将包装成一个span:,然后执行(span:last).remove() 这将导致一个更干净的解决方案,几乎没有额外的标记 用CSS代替javascript的解决方案怎么样 CSS .link { display: inline-block; } .link:after { content: ' \003e'; } .link:last-of-typ
>
发件人:
但是,经过几次迭代后,我在一行中得到了多个>>>之间没有链接,您可以这样将包装成一个span:,然后执行(span:last).remove()代码>
这将导致一个更干净的解决方案,几乎没有额外的标记 用CSS代替javascript的解决方案怎么样
CSS
.link {
display: inline-block;
}
.link:after {
content: ' \003e';
}
.link:last-of-type:after {
content: '';
}
HTML
<div class="link"> <a href="#">Crumb 1</a> </div>
<div class="link"> <a href="#">Crumb 2</a> </div>
<div class="link"> <a href="#">Crumb 3</a> </div>
请参见如果您可以编辑标记,我将推荐khalid13的答案。否则,您可以尝试使用showdev的注释来选择文本节点,或者像这样对其进行黑客攻击:
//where b is your `<b>` element:
var links = b.innerHTML.split('>')
links.pop()
b.innerHTML = links.join('>')
//其中b是``元素:
var links=b.innerHTML.split(“”)
links.pop()
b、 innerHTML=links.join(“”)
我在这里所做的是根据'>'字符将菜单拆分为一个JS数组,然后删除数组的最后一个元素并将其重新连接在一起。如果您真的想在纯javascript中执行此操作,可以执行以下操作:
// pass the node before where you want to look for the ">"
function removeTrailingGt(start) {
var node = start.nextSibling;
while (node && node.nodeType === 3) {
if (node.nodeValue.indexOf(">") !== -1) {
node.nodeValue = node.nodeValue.replace(">", "");
break;
}
node = node.nextSibling;
}
}
它从包含对象中的最后一个链接开始,然后搜索以下所有文本节点并删除找到的第一个“>”
工作演示:这可能会有帮助:您使用jQuery吗?这是一个很好的解决方案。我认为使用
而不是带有类的div更优雅(更简短),如本例所示:
//where b is your `<b>` element:
var links = b.innerHTML.split('>')
links.pop()
b.innerHTML = links.join('>')
// pass the node before where you want to look for the ">"
function removeTrailingGt(start) {
var node = start.nextSibling;
while (node && node.nodeType === 3) {
if (node.nodeValue.indexOf(">") !== -1) {
node.nodeValue = node.nodeValue.replace(">", "");
break;
}
node = node.nextSibling;
}
}