在没有任何用户操作的情况下显示javascript输出时,我遇到了一个问题

在没有任何用户操作的情况下显示javascript输出时,我遇到了一个问题,javascript,html,Javascript,Html,这就是问题所在:如果一个整数大于1并且只能被1和它本身整除,那么它就是素数。例如,2、3、5和7是素数,但4、6、8和9不是素数。写一个函数,确定一个数是否为素数。 b在确定并打印1到10000之间的所有素数的脚本中使用此函数。在确定找到所有的素数之前,你真的需要测试这10000个数字中的多少?将结果显示在对话框中 这是我的代码: function isPrime(n) { var prime=true; if(n===1 || n===0) {

这就是问题所在:如果一个整数大于1并且只能被1和它本身整除,那么它就是素数。例如,2、3、5和7是素数,但4、6、8和9不是素数。写一个函数,确定一个数是否为素数。 b在确定并打印1到10000之间的所有素数的脚本中使用此函数。在确定找到所有的素数之前,你真的需要测试这10000个数字中的多少?将结果显示在对话框中

这是我的代码:

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文件时,只有标题显示,脚本似乎没有运行! 只有脚本标签显示在文本区域显示在文本区域显示在文本区域,我尝试了一百万种方法都没有效果,我该如何在文本区域标签中输出脚本??????

我试过了,但还是不行:

 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:


很抱歉重新发布和轻微的编辑,不会再发生,我是新来的堆栈溢出,已经被禁止,如果我的禁令可以取消,我只会问更多的问题,如果我已经做了研究,如果我触及谷底,似乎没有任何工作。我没有注意到编辑帖子,这是一个愚蠢的错误,张贴一个重复,希望向下的投票被删除,im s脚本新手,堆栈溢出新手,我没有意识到我会因为愚蠢的问题被禁止。抱歉

您可以使用javascripts document.getElementById获取textarea。当然,您必须为textarea提供一些id。然后更改此文本区域的值。请查看。

文本区域中不能有HTML。

请尝试以下代码。注意更新的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


难道你没有简单地编辑你的,而不是创建一个全新的一个非常小的变化吗?真的很抱歉,我的坏,老实说没有注意到编辑按钮,不会再发生了。对不起,重新发布和轻微的编辑,不会再发生,我是新的堆栈溢出,并已被禁止,如果我的禁令可以取消,我只会问更多的问题,如果我已经做了研究,如果我触及谷底,似乎没有任何工作。我没有注意到编辑帖子,这是一个愚蠢的错误,张贴一个重复,希望向下的投票被删除,im s脚本新手,堆栈溢出新手,我没有意识到我会因为愚蠢的问题被禁止。Sorry该值是否可以是字符串变量?我在考虑用for循环和in-the循环在字符串中构建素数:str+=i+/n;例如,然后在文本区域输出字符串,这样行吗?@user2182981在我链接到作者的答案中,将该值设置为字符串。我尝试过,但不起作用,我在上面重新发布了编辑过的代码。好的,我会尝试一下,然后回复给你。它起作用了:D非常感谢,我犯了一个愚蠢的错误,在我的代码中,script标记位于textarea标记的上方,因此它在创建文本区域之前运行:p?谢谢
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();
<!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>