我发现的问题如下:
情况:我有整体div有内嵌块显示.里面是两个内置块显示的元素.
然后我添加(感谢JavaScript)a< br />两个元素之间.第二个是下一行,这是正常的行为.
越野车部分:< br />然后删除(JavaScript再次)和…显示不更改.看来整个div的框不重新计算.最后我有两个类似的标记,不会出现相同的方式(这有点问题,不是这样).
它在Firefox上工作正常(似乎是基于webkit的,因为Android浏览器的行为方式相同).所以我的问题是,有没有使用将会改变DOM的方法的解决方法?使用的库是jQuery.
测试用例here.
编辑:根据duri的建议,我在webkit bugzilla中填写了一个错误报告,这是here.但是我仍在寻找解决方法;
解决方法
方式我发现:从整体DIV中删除所有的孩子,然后追加所有除了BR:
function removeBr(){ var ahah=document.getElementById("ahah"); var childs=[],child; while(child=ahah.firstChild) { if(!child.tagName||child.tagName.toLowerCase()!=='br') childs.push(child); ahah.removeChild(child); } for(var i=0;i<childs.length;i++) ahah.appendChild(childs[i]); }
其他变体:
function removeBr(){ var node=$("#ahah")[0]; node.style.display='inline'; $("#ahah").children("br").remove(); setTimeout(function(){node.style.display='';},0); }
原文地址:https://www.jb51.cc/js/152270.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。