jquery附加了很多html(获得“未终止的字符串文字”或“错误的转义”错误)

时间:2012-01-20 21:36:25

标签: javascript jquery html append

我正在尝试使用javascript / jquery根据对前一个元素的响应动态添加到表单。但是,我不断收到“未终止的字符串文字”错误。当用颜色编码/突出显示它时,它看起来很好......

最初我把所有东西放在一行(没有转义),我收到unterminated string literal错误,所以我尝试转义新行,我收到bad escape错误。

代码:http://jsfiddle.net/jshado1/8PTbL/

顺便说一下,我通过一堆较旧的帖子看了一眼,但刚刚发现人们询问HEREDOC的问题(我之前已经查过)。

4 个答案:

答案 0 :(得分:4)

qArraycounter_oneChoice定义在哪里?

你需要像这样分解脚本标签:

'<scr' + 'ipt type="text/javascript"> \
 $(\'input[name="'+id+'"]\').change( 
     function(){ counter_oneChoice(qArray, 40); 
 }); \
 </scr' + 'ipt>');'

否则,由于代码奇怪的形式化,你的jslint错误可能只是linter中的缺点。这是一件非常混乱的事情。

答案 1 :(得分:3)

这是一个评论而不是答案,但这是一种有效且可读的方法,可以同时插入大量数量的html:

  • 制作一个数组
  • 将您的标记作为字符串推送到数组中
  • 加入并追加

示例:

var id = 0, drug = 'hello', html = [];

html.push('<ul id="' + id + '">');
html.push('<li>In the <span class="highlight">past 12 months</span>, how often did you use <span class="highlight">' + drug + '?</li>');
html.push('<li><input name="' + id + '" type="radio" value="0" />Never</li>');
html.push('<li><input name="' + id + '" type="radio" value="0" />More than once a day</li>');
html.push('<li><input name="' + id + '" type="radio" value="0" />Once a day</li>');
html.push('<li><input name="' + id + '" type="radio" value="0" />More than once a week</li>');
html.push('<li><input name="' + id + '" type="radio" value="0" />Once a week<</li>');
html.push('<li><input name="' + id + '" type="radio" value="0" />More than once a month</li>');
html.push('<li><input name="' + id + '" type="radio" value="0" />Once a month</li>');
html.push('<li><input name="' + id + '" type="radio" value="7" />Less than once a month</li>');
html.push('<li><input name="' + id + '" type="radio" value="77" />I prefer not to answer</li>');
html.push('<li><input name="' + id + '" type="radio" value="99" />Don\'t know</li>');
html.push('</ul>');
$("body").append(html.join(''));

答案 2 :(得分:0)

$('input[name="niu12"]').change(function() {
    alert("changed");


   $('input[name="niu12"][type="radio"]').removeAttr("checked");
                    var id = this.value;
                    var drug = $(this).attr("title");
                    $("#nidu_fq").append('<ul id="'+id+'"> \
                            <li>In the past 12 months</span>, how often did you use <span  class="highlight">'+drug+'</li> </ul>');


}); // done

这样做 - 只需逐行添加即可。

答案 3 :(得分:0)

修改了一下代码。我得到一些功能缺失的错误。

JS Fiddle Link