错误控制台: 未终止的字符串文字
$html='<li><div class="above">'+$question_number+ 'Question Title</div>
JQuery代码是:
$html='<li><div class="above">'+$question_number+ 'Question Title</div>
<div class="middle"> <input type="text" name="question'+$question_number+ '" size="55"/></div>
<div class="below">'+$question_number+ ' <input type="text" name="option'+$question_number+ '" size="6"/>'+$question_number+ '<input type="text" name="option'+$question_number+ '" size="6"/>
<input class="btn" type="button" name="Submit" value="Add" />
<input class="btn" type="button" name="Submit" value="Remove" />
</div>
</li>';
我知道$ html的价值很长,但我怎样才能逃脱“未终止的字符串文字”的陷阱?有没有更好的解决这个问题?
答案 0 :(得分:15)
如果您要在多行上运行字符串文字,则您的行需要延续字符。在每行的末尾加上"\"
字符或使用字符串连接。换句话说,你可能会变错:
$html='<li><div class="above">' + $question_number + 'Question Title</div>
<div class="middle"> ... ';
成:
$html='<li><div class="above">' + $question_number + 'Question Title</div>\
<div class="middle"> ... ';
或:
$html='<li><div class="above">' + $question_number + 'Question Title</div>' +
' <div class="middle"> ... ';
你实际上并不需要你的HTML格式很好,但如果你真的想要它可以打印得很漂亮的形式,你也可以将嵌入的换行符放入其中:
$html='<li><div class="above">' + $question_number + 'Question Title</div>\n' +
'<div class="middle"> ... ';
为了便于阅读代码,我会使用类似的东西:
$html = \
'<li>' +
' <div class="above">' + $question_number + 'Question Title</div>' +
' <div class="middle">' +
' <input type="text" name="question' + $question_number+ '" size="55"/>' +
' </div>' +
' <div class="below">' + $question_number +
' <input type="text" name="option' + $question_number +
' " size="6"/>' + $question_number +
' <input type="text" name="option' + $question_number + '" size="6"/>' +
' <input class="btn" type="button" name="Submit" value="Add" />' +
' <input class="btn" type="button" name="Submit" value="Remove" />' +
' </div>' +
'</li>';
然后将其传递给压缩器以获得更短的版本以供分发。
答案 1 :(得分:1)
你总是可以在多行上连接它的一部分,如:
$html='<li><div class="above">'+$question_number+ 'Question Title</div>';
$html+= '<div class="middle"> <input type="text" name="question'+$question_number;
$html+=' size="55"/></div>';
等
答案 2 :(得分:0)
您可以使用数组存储标记的片段,然后使用join方法获取完整标记:
a = new Array(20);
a[0]='<li><div class="above">'
a[1]= $question_number
a[2]= 'Question Title</div>'
a[3]= '<div class="middle">'
a[4]= '<input type="text" name="question'
a[5]= $question_number
a[6]= '" size="55"/></div>'
a[7]= '<div class="below">'
a[8]= $question_number
a[9]= '<input type="text" name="option'
a[10]=$question_number
a[11]= '" size="6"/>'
a[12]=$question_number
a[13]='<input type="text" name="option'
a[14]=$question_number
a[15]='" size="6"/>'
a[16]='<input class="btn" type="button" name="Submit" value="Add" />'
a[17]='<input class="btn" type="button" name="Submit" value="Remove" />'
a[18]='</div>'
a[19]='</li>'
$html = a.join('');