Jquery在加载动态内容时不终止字符串文字


jquery unterminated string literal when loading dynamic content

$str is loading dynamic content from admin panel (tinymce) in following format
$str = 'First Line
    Second Line 
   Third Line';
Now when i try to access this variable then it gives me unterminated string literal  
<script type="text/javascript">
    $(document).ready(function() {
        var a = '<?php echo $str;?>';
        $('#abc').html(a);                      
    });    
</script>
<div id="abc"></div>

当我将字符串转换为$str = 'First line Second line Third line';时,它不会给出错误,但我的字符串是在上面的方式

当将PHP变量转储到JavaScript中时,总是使用json_encode。这样的:

var a = <?php echo json_encode($str); ?>;

注意PHP代码周围没有引号,这很重要!PHP将为您添加引号并正确转义。

这是换行符,它们在JavaScript字符串文本中无效。如果你想在JavaScript字符串中多行,使用反斜杠('):

var testString = 'This is '
    a test';

即使这样,当它被设置为HTML元素的内容时,多个空白(包括换行符)也会被删除。

也就是说,我不明白你为什么要用JavaScript来做这些,你可以简单地做:

<div id="jaspreet"><?php echo $str;?></div>