限制给定 html 字符串上的标记深度
Limit tag depth on given html string
我在SO上看了一段时间,找不到答案。
假设我在 html 字符串中有一组嵌套标签:
<blockquote>
<blockquote>
<blockquote>
<blockquote>
Some Text 1
</blockquote>
Some Text 2
</blockquote>
Some Text 3
</blockquote>
<blockquote>
Text!
<blockquote>
Text 2!
</blockquote>
</blockquote>
Some Text 4
</blockquote>
在 jquery 中,我如何获取该 html 字符串并将其转换为另一个 html 字符串,但删除第 n 个嵌套块引用。因此,如果我将其限制为两个,这将保留:
<blockquote>
<blockquote>
Some Text 3
</blockquote>
<blockquote>
Text!
</blockquote>
Some Text 4
</blockquote>
最好是函数的原型应如下所示:
var limit = 2;
myHtmlString = limitQuotes(myHtmlString, limit);
关于此事的任何指示都会有所帮助。
根据Doge的评论:
function limitQuotes(html, max_depth){
var depth_selector = '';
for(var i = 0; i < max_depth; i++){
depth_selector += '>blockquote';
}
html = $(html);
html.find(depth_selector).remove();
return html.wrap('<p>').parent().html();
}
$('body').html(limitQuotes('<blockquote><blockquote><blockquote><blockquote>Some Text 1</blockquote>Some Text 2</blockquote>Some Text 3</blockquote><blockquote>Text!<blockquote>Text 2!</blockquote></blockquote>Some Text 4</blockquote>',2));
http://jsfiddle.net/AA67d/6/
注意:更适合的变量名称会有所帮助。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 可变大小的JavaScript字符串如何成为基元类型
- Javascript 深度对象相等时,对象通过 json 字符串与生成器创建
- 下划线.js :深度嵌套对象中的匹配字符串
- 如何做一个深度搜索对象从一个给定的字符串
- 限制JSON字符串化深度
- 用于匹配有限深度嵌套字符串的正则表达式——缓慢、崩溃的行为
- 如何使用分隔字符串在任意深度定位和修改对象键
- 限制给定 html 字符串上的标记深度