如何将HTML代码写入DOM

时间:2012-06-26 00:15:45

标签: javascript html dom

<!DOCTYPE html>
<html>
<body>
<form name=myform>
<input type=button value="Try it now" 
onClick="
s=prompt('Enter your first name','Name');
n=prompt('Enter your first name','Name');
document.write('hello'+s +n+' !')">
</form>
</body>
</html> '

在上面的代码中,我想替换&#39; hello&#39;使用下面的代码。 在你好的地方放这个代码:
<div class="hreview"> <span class="item"> Reviewed by <span class="reviewer">john paul</span> Rating: <span class="rating">5</span> </div>

它应该显示代码而没有格式化我在hello处写的代码。

3 个答案:

答案 0 :(得分:0)

你需要逃避你的报价:

document.write("<div class=\"hreview\"> <span class=\"item\"> Reviewed by <span class=\"reviewer\">john paul</span> Rating: <span class=\"rating\">5</span> </div>")

或使用单引号

document.write("<div class='hreview'> <span class='item'> Reviewed by <span class='reviewer'>john paul</span> Rating: <span class='rating'>5</span> </div>")

答案 1 :(得分:0)

不建议在页面加载后使用document.write(),它可以用来在DOM准备时向页面添加内容。

例如:

<!DOCTYPE html>
<html>
<body>
<script type="javascript">
 document.write('<h1>Mypage</h1>');
</script>
</body>
</html>

在您的情况下,页面已经被解析并转换为DOM,因此您应该直接更改DOM以反映页面上的任何更改。

<!DOCTYPE html>
<html>
<head>
    <script>
        function getDetails(){
         var s=prompt('Enter your first name','Name');
         var n=prompt('Enter your first name','Name');
         document.body.innerHTML = ('hello'+s +n+' !');
        }
    </script>
</head>
<body>
<form name=myform>
<input type=button value="Try it now" 
onClick="getDetails()">

</form>
</body>
</html>

您可以阅读有关DOM遍历的信息

答案 2 :(得分:0)

我想你正在尝试使用sn变量作为你正在写入文档的更新html中的名字和姓氏,这就是我在这里所做的:

HTML:

<form name="myform">
    <input type="button" value="Try it now" onclick="write_message();" />
</form>
<span id="message"></span>

JS:

function write_message() {
        var s=prompt('Enter your first name','First name');
        var n=prompt('Enter your last name','Last name');
        document.getElementById('message').innerHTML='<div class="hreview"> <span class="item"> Reviewed by <span class="reviewer">'+s+' '+n+'</span> Rating: <span class="rating">5</span> </div>';
}

此外,作为提示,您的html存在许多问题。 inputs应该如上所述正确关闭,最后用斜杠。任何带有字符串的属性都需要在引号中,并且所有html都是小写的,包括onclick