问题描述
我有一个Rails应用程序,其中要插入作为其中存储了整个div元素的表之一的列名。我想使用HTML DOM中的jquery将该元素插入到具有“ map ”类的元素中。我正在拨打AJAX电话并使用它:
$('.map').html('<%= @dataextracted.toinsert %>');
但是代替这个:
<div class='map'>
<div class='fromdatabase'></div>
</div>
它执行以下操作:
<div class='map'>
"<div class='fromdatabase'></div>"
</div>
因此元素被插入为字符串。我以为可能会造成问题,所以我写了以下内容。
$('.map').html('<%= @dataextracted.toinsert %>'.substring(1,'<%= @dataextracted.toinsert %>'.length-2));
但是,它没有删除引号(“),而是删除了div元素()的开始和结束标记。
还想提及对其进行硬编码可以很好地工作(它只是用于调试)。
$('.map').html('<div class="fromdatabase"></div>');
我无法弄清楚是什么原因引起的。
请帮助。
解决方法
请按以下方式使用html_safe方法。
$('.map').html("<%= @dataextracted.toinsert.html_safe %>");
,
由于@ dataextracted.toinsert的值中也包含单引号,因此它可能与引用有关。尝试使用双引号:
$('.map').html("<%= @dataextracted.toinsert %>");