javascript - 从 HTML 文本的开头剥离所有 br 标记,直到下一个元素是文本节点 Javascript 或 jQuery
问题描述
可以说我有这个代码:
<div class ="element">
<br>
<span>
<br>
<span>
<br>
text node
<br>
</span>
<br>
</span>
</div>
<div class ="element">
<br>
<span>
<br>
<br>
text node
</span>
</div>
我想循环每个元素都有类“元素”并删除所有br
标签,直到循环到达文本节点然后停止删除br
,代码如下所示:
<div class ="element">
<span>
<span>
text node
<br>
</span>
<br>
</span>
</div>
<div class ="element">
<span>
text node
</span>
</div>
更新
var stop2 = false;
var walk_the_DOM2 = function walk2(node, func) {
//func(node);
node = node.firstChild;
while (node && !stop2) {
walk2(node, func);
if(func(node)== true){
stop2 = true;
}
node = node.nextSibling;
}
};
$('.element').each(function(index, elem) {
var hh = elem;
stop2 = false;
walk_the_DOM2(hh, function(el) {
if(el.tagName =="BR"){
alert(el.tagName);
$(el).css('display', 'none');
}else if(el.tagName == undefined){
if($(el).text().replace(/^\s+|\s+$/g, '').replace(/(\r\n\t|\n|\r\t)/gm,"").length > 0){
alert($(el).text());
return true;
}
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<div class ="element">
<br>
<span>
<br>
<span>
<br>
text node
<br>
</span>
<br>
</span>
</div>
解决方案
像这样写你的代码:
<div class ="element">
<br>
<span>
<br>
<span>
<br>
<span class="anchor">text node</span>
<br>
</span>
<br>
</span>
</div>
<div class ="element">
<br>
<span>
<br>
<br>
<span class="anchor">text node</span>
</span>
</div>
现在使用此循环删除所有以前的br
:
$('.element').each(function () {
var anchor = $(this).find('span:contains(text node)');
anchor.prev("br").remove();
});
您可以使用锚类而不是文本,但仅对文本使用锚跨度是必要的,这意味着如果您<br>
在锚中写入<span>
它不会删除。您可以在此代码中删除锚类,我不使用它。
推荐阅读
- perl - Perl:异步执行 10 个系统进程
- excel - 使用 AVERAGEIF 计算一段时间内的时间表有效性,意外结果
- powershell - 如何修复 ADD ADGroupMember 错误“无法验证参数 'Identity' 的参数,属性为空”
- vb.net - 这个允许的字符检查是如何工作的?
- ios - 滚动出视图时,覆盖的 setSelected 和 setHighlighted 不保留选定的背景
- python - 根据 bin 组合字典键
- entity-framework-core - System.NotImplementedException:方法或操作未实现。实体框架问题
- html - HTML 滚动文本比容器更宽
- laravel - Vue.js 组件没有从变量中获取值
- javascript - 转换 JSON 格式(分组依据)