创建一个新的< div>与.createElement() [英] Create a new <div> with .createElement()

查看:94
本文介绍了创建一个新的< div>与.createElement()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好我是Javascript的新手,在 DOM 中创建并添加新的 存在问题。



当我点击计算按钮按钮,我非常简要地看到屏幕上的文本闪烁,然后消失。没有添加到DOM。



以下是我的JS脚本:

  function makeResponseBox(){
document.getElementById(calculate)。onclick = function()
{
var responseBox = document.createElement(DIV); //创建< div>
var para = document.createElement(P); //创建< p>
var text = document.createTextNode(Text); //
para.appendChild(text); //将文本附加到para
var newDiv = responseBox.appendChild(para); / / append< p>到< div>并分配给变量
document.body.appendChild(newDiv); //作为子项追加到< body>
}

} //关闭函数(makeResponseBox)

window.onload = makeResponseBox;

这是我的HTML:

 <!doctype html> 
< html lang =en>
< head>
< meta charset =utf-8>
< title>将元素添加到DOM< / title>
< script src =calculate.js>< / script>
< / head>
< body id =main>
< h1>将元素添加到DOM< / h1>


< form id =form>

< fieldset>

< input type =submitvalue =Calculateid =calculate/>


< / fieldset><! - close fieldset - >

< / form><! - close form - >

< / body>
< / html>


解决方案

这是因为表单被提交以便页面重新加载

您需要为侦听器添加一个参数,比如 function(e),并调用 e.preventDefault()



例子:

< pre $ document.getElementById(calculate)。onclick = function(e)
{
e.preventDefault();
var responseBox = document.createElement(DIV); //创建< div>
var para = document.createElement(P); //创建< p>
var text = document.createTextNode(Text); //
para.appendChild(text); //将文本附加到para
var newDiv = responseBox.appendChild(para); / / append< p>到< div>并分配给变量
document.body.appendChild(newDiv); //作为子项追加到< body>
}

或者您也可以更改按钮的类型以移除提交函数

 < input type =buttonvalue =Calculateid =calculate/> 

但是您的< form> 成为没用,你可以删除它

Hi I'm new to Javascript, having problem creating and adding a new to the DOM. (I want to do this with native javascript not jquery).

When I click the "Calculate" button, I very briefly see the Text flash on the screen and then disappear. Nothing added to the DOM.

Here is my JS script:

function makeResponseBox() {
    document.getElementById("calculate").onclick = function()
    {
        var responseBox = document.createElement("DIV"); //create <div>
        var para = document.createElement("P");//create <p>
        var text = document.createTextNode("Text");//
        para.appendChild(text);//append text to para
        var newDiv = responseBox.appendChild(para);// append <p> to <div> and assign to variable
        document.body.appendChild(newDiv);//append as child to <body>
    }

}//close function (makeResponseBox)

window.onload=makeResponseBox;

Here is my HTML:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Add Element to DOM</title>
    <script src="calculate.js"></script>
</head>
<body id="main">
<h1>Add Element to DOM</h1>


<form id ="form">

    <fieldset>

        <input type="submit" value="Calculate" id="calculate" />


    </fieldset><!-- close fieldset -->

</form><!-- close form -->

</body>
</html>

解决方案

It's because the form is submitted so the page is reloaded

You need to add a parameter to your listener , say function(e) and call e.preventDefault() at the beginning of the listener.

example:

document.getElementById("calculate").onclick = function(e)
{
    e.preventDefault();
    var responseBox = document.createElement("DIV"); //create <div>
    var para = document.createElement("P");//create <p>
    var text = document.createTextNode("Text");//
    para.appendChild(text);//append text to para
    var newDiv = responseBox.appendChild(para);// append <p> to <div> and assign to variable
    document.body.appendChild(newDiv);//append as child to <body>
}

Or you could also change the type of your button to remove the submit function

<input type="button" value="Calculate" id="calculate" />

But then your <form> become useless and you could remove it

这篇关于创建一个新的&lt; div&gt;与.createElement()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆