Javascript CreateElement(br)

时间:2018-10-06 03:02:54

标签: javascript

我正在尝试创建一个得分保持器显示。

我想使用htmljavascript跟踪得分。我想了一切,但我想不通为什么这里的线没有中断。

相关代码:

var br = document.createElement("br");
var nes = document.createTextNode("---------");
scorechart.appendChild(br);
scorechart.appendChild(nc);
if(tot) {
    scorechart.appendChild(br);
    scorechart.appendChild(nes);
    scorechart.appendChild(br);
    scorechart.appendChild(tot);
}

(完整视图:https://hastebin.com/osuduluvaj.js

除“ ------”部分外,其他所有内容都中断:https://media.discordapp.net/attachments/240883852350980096/497957073481629696/sAAAAASUVORK5CYII.png (我还不能以新成员身份上传图片)

谢谢:)

3 个答案:

答案 0 :(得分:2)

<br>创建一个元素,您只能将其附加到DOM一次。如果要重复使用创建的var score = []; var scoreadd_button = document.querySelector('#scoreadd-button'); var scoreadd_input = document.querySelector('#scoreadd-input'); let sc1 = 0; let sc2 = 0; var scorechart = document.querySelector('.scores'); function totalScores() { var i; var sum = 0; for (i = 0; i < score.length; i++) { sum += score[i]; } return sum; } function newScore(amm) { score.push(amm); if (!score[1]) { var nc = document.createTextNode(amm) } else { var nc = document.createTextNode(" + " + amm); } if (sc1 == 0) { sc1 = amm; } else { sc2 = amm; } if (sc2 != 0) { var tot = document.createTextNode("= " + totalScores()); sc1 = amm; sc2 = 0; } var br = document.createElement("br"); var nes = document.createTextNode("---------"); scorechart.appendChild(nc); if (tot) { scorechart.appendChild(br.cloneNode(true)); scorechart.appendChild(nes); scorechart.appendChild(br.cloneNode(true)); scorechart.appendChild(tot); } } scoreadd_button.addEventListener('click', function() { var amm = scoreadd_input.value; newScore(parseInt(amm, 10)); });元素,则需要对其进行克隆,然后可以将克隆的副本插入DOM。参见:.text()

<button id="scoreadd-button">button</button>
<input type="text" id="scoreadd-input" />
<div class="scores"></div>
StringBuilder

答案 1 :(得分:0)

好的,所以我通过在语句中创建元素而不是使用变量来解决了这个问题。

var nes = document.createTextNode("---------");
scorechart.appendChild(document.createElement("br"));
scorechart.appendChild(nc);
if(tot) {
    scorechart.appendChild(document.createElement("br"));
    scorechart.appendChild(nes);
    scorechart.appendChild(document.createElement("br"));
    scorechart.appendChild(tot);
}

谢谢:)

答案 2 :(得分:0)

您只需要为javascript上每个新创建的元素定义唯一变量,否则它们将被视为一个。

此代码应该有效

var scorechart = document.querySelector('.scores');
  
    var br = document.createElement("br");
    var br2 = document.createElement("br");
    var nes = document.createTextNode("---------");

        scorechart.appendChild(br);
        scorechart.appendChild(nes);
        scorechart.appendChild(br2);
    
 
<span class="scores">
text before
</span>
after text