业务中有一个一览列表,显示某个对象的一览信息。列表的其中一列用来显示对象的内容的缩略显示,该内容是含有各种html标签的富文本内容。开始决定不做处理直接显示,但看到一个一个的尖括号实在没法忍受,查找了一番,做了如下处理。
?
把实际内容放到一个隐藏的div中,
?
<div id="rtfContent${stat.index}" class="none">${Content}</div> <s:label id="content%{#stat.index}" />
?
然后把div的文本内容去掉回车换行后放到label中,达到过滤标签的目的。
因为表格采用了超长自动省略的css,所以给标签增加title属性,显示完整内容。
?
for (var i=0; i < $('tableId').rows.length - 1; i++) { $('content' + i).innerText = $('rtfContent' + i).innerText.replace( /\r|\n/g, ""); $('content' + i).title = $('rtfContent' + i).innerText; }
?
试来试去这种方法是唯一奏效的,当然也许还有更简洁和直接的方式。