Javascript 在innerHTML中添加新行
你们能告诉我为什么我不能在“p”标签上写新行吗 我希望输出像这样 var数=10; 警报号码 我也尝试了br tag和\n tag,但都不起作用 我不知道这里出了什么问题Javascript 在innerHTML中添加新行,javascript,newline,innerhtml,Javascript,Newline,Innerhtml,你们能告诉我为什么我不能在“p”标签上写新行吗 我希望输出像这样 var数=10; 警报号码 我也尝试了br tag和\n tag,但都不起作用 我不知道这里出了什么问题 <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>onclick</title> <script type="text/javascr
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>onclick</title>
<script type="text/javascript">
function myNum() {
var willEval = " ";
//willEval += 'var number = 10; <br/>';
//I put <br/> before, but error happened saying
//Uncaught SyntaxError: Unexpected token '<'
willEval += 'var number = 10;';
willEval += '\n';
//or willEval += '<br />;
willEval += '\n alert(number);';
eval(willEval);
alert(willEval);
document.getElementById('demo').innerHTML = willEval + "<br />";
}
</script>
</head>
<body>
<h1>onclick</h1>
<button onclick="myNum()">
CLICK ME!
</button>
<p id="demo"></p>
</body>
</html>
警报不呈现HTML,通常认为警报只呈现ASCII字符串,因此使用定义的换行符\n\r\n也可以工作
因此,也可以使用\t格式化复杂的警报对话框。
警报将直接传递到浏览器,因此某些浏览器将支持unicode或扩展ASCII字符集。这样想,警报框实际上是来自浏览器代码的弹出对话框,而不是来自您的页面。因此,内容m、ust必须符合编写浏览器代码时使用的字符串编码
另一方面,评估:
eval函数计算表示为字符串的JavaScript代码
此函数尝试编译和计算字符串值,就像它是javascript代码一样
不是javascript代码,这就是为什么不能求值包含在其中的字符串
是将换行符插入HTML文本段落的正确机制
ASCII/n对HTML呈现没有任何影响,因为它被分类为控制字符,而该字符本身没有视觉表示。我们通常将这些字符称为空白字符。
HTML呈现在呈现时忽略空白,这允许我们始终在HTML代码中添加换行符,以便更容易阅读代码,而不会不必要地增加页面呈现
字符串的警报和html呈现之间的这个问题很重要,要知道您是否要构建一个字符串并在两个位置都使用它
因此,如果您希望动态构造javascript代码,并且该代码包含一个警报框,并且您希望该警报框中有一个换行符,则只需使用\n即可。如果您希望在html中显示构造的代码字符串并在html输出中保留换行符,则可以使用替换将所有字符转换为\n:
onclick
函数myNum{
var结果=0;
var willEval=;
willEval+='变量编号=10;';
willEval+='\n';
willEval+='\n alertnumber;';
//注意:添加了return语句,因此我们可以使用eval的结果
willEval+='\n返回编号;';
var result=eval'函数{'+willEval+'}';
willEval+='\n='+结果;
威利瓦尔;
document.getElementById'demo'.innerHTML=willEval.replace/\n/g,;
}
onclick
点击我!
在正常的HTML上下文中,换行符只在pre元素中的特定条件下显示,或者应用特殊的CSS格式。这里您的错误是,您在全文内容之前添加了br,而不是将其插入到两部分之间,您当前只在这两部分之间放置了一个\n。那么我应该使用pre元素将整个内容放在其中吗?…还是插入一个而不是一个\n-具体取决于您需要什么,如果您需要将其显示为警告和页面内部,那么如果您使用HTML部分,您需要以不同的方式处理这两个问题。您应该进一步解释代码,很高兴看到您的想法和尝试,但不清楚的是您希望实现的总体结果。下次将其分解为警报框显示的内容与您期望的内容,然后对html执行相同的操作。我无法为您进行此编辑,因为我要做的假设太多。谢谢您的帮助!我会参考你提供的那些网站:是的,下次我应该在提问时把我的问题和代码弄清楚。。再次感谢!