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でラップします。<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

関数は要素を別の要素にラップするだけです。これらの要素の内側または外側に表示するテキストはありません。結果を確認するには、タグを閉じる前にランダムなテキストを挿入してみてください。ところで、要素は p タグに正常に配置されています。

于 2013-02-13T20:51:21.467 に答える
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 に答える