当我的字符串有空格时,会在表格中进行换行。但是因为我想在innerHTML中保留空格所以我用'\ u00A0'代替它。
var newString = aString.replace(/\s/g,'\u00A0');
现在,当newString在表中得到渲染时,它还没有结束,因为我已经用相应的Unicode字符替换了空格。
getTableRow(rowIndex).cells(i).innerHTML = myRow[i]; //Here You can replace myRow[i] with newString
自动换行CSS属性对我不起作用。
简而言之,我使用了\ u00A0来防止连续的空间折叠到一个空格,但实际上并不想阻止换行。
答案 0 :(得分:1)
不要用不间断空格(\u00A0
)替换空格,只需设置white-space
:预先包装CSS中的元素。 Browser support相当不错,包括IE 8。
但是,如果你需要覆盖IE 7及更早版本,请使用当前的方法,但只能替换任何一对连续空格的第二个空格:
aString.replace(/\s\s/g,'\u00A0 ')
答案 1 :(得分:0)
如果我理解正确,您可以插入以下标记告诉浏览器它可以在某个点包装文本。
<wbr>
有关此标记的详细信息,请访问以下链接:http://www.w3schools.com/html5/tag_wbr.asp
据我所知,唯一的障碍是IE不支持此标签(从IE9开始)。
答案 2 :(得分:0)
我找到了解决方案。
用可制作的可见Unicode字符替换空格,即“\ u2009”。它对我来说很完美。
newString = aString.replace(/\s/g,'\u2009');
getTableRow(rowIndex).cells(i).innerHTML = newString;