如何在document.getElementById中打印多行(" idname")。innerHTML

时间:2014-08-03 20:09:45

标签: javascript php html

我通过“提取”数据从我的数据库中提取数据。数据类型,'功能'是一个排,元素在'功能' row有多行数据。

例如:

同步高清视频和图像录制,地理标记,触摸对焦。

面部和微笑检测。

图像稳定,HDR。

PHP

function mf(){
    while($row = mysqli_fetch_array($fetching)){
        echo $row['Features'];
}
}

Javascript

document.getElementById("idname").innerHTML = "<?php mf(); ?>";

HTML

<div id="idname"> </div> 

这里mf函数具有示例中显示的Features行元素。当我尝试执行时,网页中没有输出,如果我删除新行并在一行中写入整个元素就行了,如果它是多行的,那么数据就不会显示在网页中。 请帮帮我!

3 个答案:

答案 0 :(得分:0)

因为字符串有换行符,所以JavaScript看起来像这样:

... .innerHTML = "text text
text
text"

哪个JS无效。在PHP中,将换行符替换为<br />,因此innerHTML将解析而不是语法错误。

答案 1 :(得分:0)

如果要使用\n换行符,请更新innerText属性。如果您坚持使用innerHTML属性,则必须将\n个字符替换为HTML中断标记<br />

http://jsfiddle.net/6QnQG/

除非您确定数据可能不包含恶意HTML或不需要输出html标记,否则我建议您使用innerText。

document.getElementById('idname').innerText = "<?php mf(); ?>";

答案 2 :(得分:0)

您可以在javascript中使用<br/>替换新行。

var str = "<?php mf(); ?>";
str = str.replace(/(?:\r\n|\r|\n)/g, '<br />');
document.getElementById("idname").innerHTML = str;

正则表达式取自: How do I replace all line breaks in a string with <br /> tags?