当我从<pre>
标签中删除一行时,它下面的其余行不会像使用标准<div>
或任何其他元素时那样向上移动。
你可以在http://jsfiddle.net/NN6LC/看到一个例子
有没有人遇到过这个问题或知道如何解决这个问题?
当我从<pre>
标签中删除一行时,它下面的其余行不会像使用标准<div>
或任何其他元素时那样向上移动。
你可以在http://jsfiddle.net/NN6LC/看到一个例子
有没有人遇到过这个问题或知道如何解决这个问题?
您正在删除跨度,但换行符仍然存在。
从技术上讲,您甚至不允许在<span>
s 中包含 s <pre>
。
来自http://lib.ru/WEBMASTER/elements.html#PRE:
允许的元素...
元素
<A>
<HR>
<BR>
和解析的字符数据。
解决方法是使用 a<div>
而不是 a<pre>
并在 div 上设置样式以使其看起来像 aa <pre>
。
编辑:其他人在下面发布了答案,然后删除了他们的答案。我不知道为什么,因为这是一个很好的答案。但这就是他们的做法:
如果您不关心<span>
s 在技术上不被允许,您可以手动删除它和这样的换行符:http: //jsfiddle.net/doktormolle/KgYyp/
function removeLine() {
var line=$('pre span.line_1');
if(line.length) {
if(line[0].nextSibling && line[0].nextSibling.nodeType == 3) {
line[0].parentNode.removeChild(line[0].nextSibling);
}
}
line.remove();
}
这将在删除元素之前检查元素之后的换行符,如果存在换行符,也将其删除。
您也必须在该行之后删除换行符。
多么奇怪的行为。这是一种解决方法,但我承认它并不完全令人满意。
添加以下 CSS:
pre {white-space: normal}
pre span {display: block}
有关工作版本,请参阅http://jsfiddle.net/tG8V6/ 。