1

这应该是一件很容易的事情,但它不会返回任何东西。函数 love() 应该启动,得到一个简单的数字提示,并吐出使用该起始数字的一些项目的列表。警报框正确显示了我的期望,但我希望它显示在屏幕上。(这只是我所追求的一小部分,但它是它的核心)。IE、FF 或 Chrome 中没有显示任何文字...

<script type="text/javascript">
        function love()
        {
            var ncxElement="";
            var idNumber = prompt("Enter beginning number","");
            var myText=document.getElementById("here");
            for (var i=1;i<5;i++)
            {
                ncxElement+=("<navPoint class=\"other\" id=\"page_"+idNumber+"\">\n");
                idNumber++;
            }
                alert(ncxElement);
                myText.innerHTML=ncxElement;
        }
    </script>
    </head>
    <body onload="love()">
    <p id="here">Begin!</p>
    </body>
4

3 回答 3

2

如果您想在页面上显示 HTML(不对其进行解析),请使用.textContent代替.innerHTML并将其包装在 a 中<pre>(以保留换行符)。

演示: jsFiddle

改变:

myText.innerHTML=ncxElement;

到:

myText.textContent=ncxElement;

改变:

<p id="here">Begin!</p>

到:

<pre id="here">Begin!</pre>
于 2013-02-13T20:47:58.397 回答
1

navPoints 不是有效的 html 元素,因此浏览器不知道如何处理它们。它们被添加到 DOM 中,除非您添加样式,否则它们不会显示。

如果你用段落标签替换它们,它工作正常。请参阅此处的示例。

<script type="text/javascript">
    function love()
    {
        var ncxElement="";
        var idNumber = prompt("Enter beginning number","");
        var myText=document.getElementById("here");
        for (var i=1;i<5;i++)
        {
ncxElement+=("<p class=\"other\" id=\"page_"+idNumber+"\">"+idNumber+ "</p>");
            idNumber++;
        }
            alert(ncxElement);
            myText.innerHTML=ncxElement;
    }
</script>
</head>
<body onload="love()">
<p id="here">Begin!</p>
</body>
于 2013-02-13T20:50:53.557 回答
1

您的函数只是将元素包装在另一个函数中。这些元素内部或外部没有可显示的文本。尝试在关闭标签之前插入一些随机文本以查看结果。顺便说一句,元素已成功放置在 p 标签中。

于 2013-02-13T20:51:21.467 回答