阻止表单元格转换HTML实体

时间:2017-04-11 09:25:30

标签: javascript html angularjs

<table>
    <tr>
      <td>&gt;</td>  
    </tr>
     <tr> 
      <td>&&#xfeff;GT</td> 
    </tr>
</table>

我有上面的代码用于具有html实体的表格单元格。此外,我有一个相关的question(现在已经回答)具有相同的细节,但具有不同的场景。

目标是按原样输出字符串,而不将其转换为HTML实体。例如,字符串“Project&amp; GT”将按原样输出。

以下是我尝试但仍不符合我要求的2个解决方案(这些是来自question的答案)

一个。第一行 - 此答案未正确显示字符串。它显示转换后的html,即“&gt;”。但是这个解决方案适用于工具提示和跨度等非表格元素。此外,如果字符串具有不同的外壳(Project&amp; gT),它将从原始字符串输出外壳。

B中。第二行 - 此答案会正确显示字符串。它不输出转换后的字符串。但我的问题是如果字符串有不同的大小写(Project&amp; gT),它将输出你在逻辑上编码的情况(Project&amp; GT - 因为这是我们在HTML上编码的那个)。

有没有办法拥有未转换的字符串并保留其外壳?

更新:忘记提及我在angular.datatable的renderWidth中使用它。

.renderWith(function(data) {
 return $filter('customFilter')(data)});

我和customFilter一起使用它来停止转换。在我的调试中,过滤器返回正确的结果,但在呈现给表格单元格时总是有问题。这就是我在此更新之前直接询问有关问题的原因

2 个答案:

答案 0 :(得分:1)

你可以这样做:

function findNoParse(){
   $('noparse').each(function(){
      if($(this).attr('tagchecked') != 'true'){ //checks if already changed tag
        $(this).text($(this).html()); //makes the html into plaintext
        $(this).attr('tagchecked', 'true'); //says that tag has been checked
      }
   });
 }

在HTML中

<noparse><a href="http://example.com">Link</a></noparse>

我创造了一个小提琴。请看一下。 Fiddle

答案 1 :(得分:1)

如果您使用角度,请使用ng-bind它的alwais为您提供纯文本。 雇用的是link

  • 获得&amp; gt;使用 ng-bind
  • 获取&gt;使用 ng-bind-html

试试吧。