2012-10-15 50 views
1

我有一个文本区域(从我取号)和按钮提交值,我试图将内容添加到由该回路中产生一个段落:的JavaScript创建内容

var countNum = document.getElementById(num).value; 
var entNum = parseInt(countNum); 

for(i=1;i<=entNum;i++){ 
    if(i%3!==0 && i%7!==0){ 
     document.write(i + "<br>"); 
    } 
} 

现在当我使用document.write当然以前的内容被覆盖,但我想有一个段落下的按钮,从循环和他们接收生成的数字。什么是正确的做法?

+1

生成一个变量您的HTML构建段落。然后将其插入段落 – AMember

+1

转到并阅读[DOM教程](http://www.w3.org/wiki/Web_Standards_Curriculum#JavaScript_core_skills) – Quentin

回答

2

让我们假设你有你的按钮,在这里您可以把你的东西,在下面的容器:

<button [...] /> 
<div id="myContainer"></div> 

然后你就可以填充容器调用

var myContainer = document.getElementById("myContainer"); 
var paragraph = document.createElement("p"); 
paragraph.appendChild(document.createTextNode("YourNumberOrTextHere")); 
myContainer.appendChild(paragraph); 

你会发现其余的部分! ;)


编辑: 按照你的意见,作如下补充:

要删除一个元素,你需要对它的引用。

通过ID:

//Create element and give it a unique ID 
var paragraph = document.createElement("p"); 
paragraph.id = "element1"; 
//Now you can get it like this 
var paragraph = document.getElementById("element1"); 

通过标签名:

//Request all elements with a certain tag name 
var paragraphs = document.getElementsByTagName("p"); 
//or only those of our container: 
var paragraphs = document.getElementById("myContainer").getElementsByTagName("p"); 
//Now you can mess with all of them like this: 
var paragraph = paragraphs[0] 

通过参考:

//Just reuse the variable you used when you created your element 
var paragraph = document.createElement("p"); 
//use paragraph 

更多找出:

;) 

NOW:删除它:

你必须告诉parentContainer,它应该删除的子元素。幸运的是,每一个元素保存到其父的引用:

paragraph.parentElement.removeChild(paragraph); 
+1

是的,这是IMO的最佳方法。 [Live test case](http://jsfiddle.net/5SMuQ/)使用这个概念。 –

+0

非常感谢,它非常完美!现在我将尝试找出如何删除以前的内容并在其中添加新内容。 –

0

做这样的事情:

var countNum = document.getElementById(num).value; 
var entNum = parseInt(countNum); 
var html = '' 

for(i=1;i<=entNum;i++){ 
    if(i%3!==0 && i%7!==0){ 
     html += i + "<br>"; 
    } 
} 

,然后在任何地方插入HTML你需要它...

0

您可以设置用于例如容器元素的innerHTML。

<button>Click Me</button> 
<div id="container"></div> 

document.getElementById('container').innerHTML = content; 

另一种选择是使用DOM API