2013-03-19 59 views
-3

这是一个问题:如果一个整数大于1并且只能由1和整数本身整除,那么它就是整数。例如,2,3,5和7是素数,但是4,6,8和9不是。 a)编写一个函数,确定数字是否为素数。 b)在一个脚本中使用这个函数来确定和打印1到10000之间的所有素数。在确定你已经找到所有素数之前,你真的需要测试这10000个数中的多少个?在a中显示结果。我有一个显示javascript输出没有任何用户操作的问题

这是我的代码:

function isPrime(n) 
{ 
var prime=true; 
     if(n===1 || n===0) 
     { 

      prime= false; 
     } 

     if(n==2) 
     { 
      prime= true; 
     } 
     else 
     { 
      for(var i=2;i<n;i++) 
      { 
       if(n%i===0) 
       { 
        prime= false; 
       } 
      } 
     } 
     return prime; 
} 
function printPrimes() 
{ 

    for(var i=0; i<=1000; i++) 
    { 
     if(isPrime(i)===true) 
     { 
      document.writeln("<p>" + i + "</p>"); 
     } 
    } 

} 
printPrimes(); 

这是我的HTML:

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
     <body> 
      <h1> Prime numbers between 1 and 1000 are: </h1> 
      <textarea rows="10" cols="15"> 
      <script src="prime.js" type="text/javascript"> </script> 
      </textarea> 
     </body> 
</html> 

当我打开Chrome浏览器的HTML文件只有标题显示出来似乎没有运行该脚本! 只有脚本标签显示在文本区域显示出来,我试了一百万件事情没有任何工作,我想如何输出TEXTAREA标签中的脚本??????

我试过,但仍然没有去:

function printPrimes() 
{ 
    var str=""; 
    for(var i=0; i<=1000; i++) 
    { 
     if(isPrime(i)===true) 
     { 
      str+=i +" /n"; 
     } 
    } 
    document.getElementById('primes').value=str; 

} 
printPrimes(); 

HTML:

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
     <body> 
     ` <script src="prime.js" type="text/javascript"> </script> 
      <h1> Prime numbers between 1 and 1000 are: </h1> 
      <textarea id="primes" rows="40" cols="50"> 

      </textarea> 
     </body> 
</html> 

所以很抱歉的转贴和轻微的编辑,就不会再发生,即时通讯新的栈溢出,并得到已经禁止了,如果我的禁令可以取消,我只会问更多的问题,如果我已经做了研究,如果我打到最低限度,没有任何东西似乎工作。我ddnt注意到编辑帖子,这是一个愚蠢的错误发布重复,希望下来的选票被删除,我的脚本新手,堆栈溢出新手,我ddnt实现id被禁止愚蠢的问题。对不起

+1

你能不能简单地编辑您的[前一个问题(http://stackoverflow.com/questions/15480801/im-having-an-问题与显示JavaScript的输出没有任何用户行动),而不是创建一个全新的一个非常小的变化? – 2013-03-19 14:41:05

+0

真的很抱歉,我的坏,老实说没有注意编辑按钮,不会再发生 – rnm20 2013-03-19 14:46:17

+1

所以很抱歉的转发和轻微的编辑,不会再发生,即时通讯新的堆栈溢出,并已被禁止,如果我的禁令可以解除,如果我已经完成了研究,并且如果我打到最低限度,没有任何东西似乎正在工作,我只会提出更多问题。我ddnt注意到编辑帖子,这是一个愚蠢的错误发布重复,希望下来的选票被删除,我的脚本新手,堆栈溢出新手,我ddnt实现id被禁止愚蠢的问题。对不起 – rnm20 2013-03-19 23:28:30

回答

0

这里尝试下面的代码。注意更新的textarea元素,JS引用的位置和值的输出。

JS文件

function isPrime(n){ 
    var prime=true; 
    if(n===1 || n===0) 
    { 

     prime= false; 
    } 

    if(n==2) 
    { 
     prime= true; 
    } 
    else 
    { 
     for(var i=2;i<n;i++) 
     { 
      if(n%i===0) 
      { 
       prime= false; 
      } 
     } 
    } 
    return prime; 
} 
function printPrimes() 
{ 

    for(var i=0; i<=1000; i++) 
    { 
     if(isPrime(i)===true) 
     { 
      //document.writeln("<p>" + i + "</p>"); 
      document.getElementById('primeNumbers').value = document.getElementById('primeNumbers').value + i + '\n'; 
     } 
    } 

} 
printPrimes(); 

HTML

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 
     <h1> Prime numbers between 1 and 1000 are: </h1> 
     <textarea rows="10" cols="15" id="primeNumbers"></textarea> 
     <script src="prime.js" type="text/javascript"> </script> 
    </body> 
</html> 
+0

好吧生病了试试这个,回复你 – rnm20 2013-03-19 15:08:40

+0

它的工作原理:D非常感谢,这是我犯的一个愚蠢的错误,脚本标签超过了textarea标签我的代码,所以它是在文本区域之前运行:p ..很感谢代码:D – rnm20 2013-03-19 15:14:19

+0

你能举出这个答案有用吗?谢谢 – Kalpers 2013-03-19 16:03:36

2

你可以使用javascripts document.getElementById来得到textarea(当然你将不得不给一些id给textarea)。然后改变这个文本区域的value。看看this answer

+0

的值可以是一个字符串变量?我正在考虑用循环和循环在字符串中构建素数:str + = i +“/ n”;例如,然后输出文本区域中的字符串,这将工作吗? – rnm20 2013-03-19 14:58:05

+0

@ user2182981在我链接到作者的非常接近的答案中将值设置为字符串。 – 2013-03-19 14:59:00

+0

我试过了,但它没有工作,我转发了上面编辑的代码 – rnm20 2013-03-19 15:07:54

0

你不能在textarea中有HTML。

相关问题