我已经看了一段时间,无法找到答案。
假设我在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>
<blockquote>
Some Text 3
</blockquote>
<blockquote>
Text!
</blockquote>
Some Text 4
</blockquote>
函数的原型最好看起来像这样:
var limit = 2;
myHtmlString = limitQuotes(myHtmlString, limit);
关于此事的任何方向都将有所帮助。
最佳答案
根据总督的评论:
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/
注意:更适合的变量名称将有所帮助。