Javascript - 如何清除DIV中的先前值?

时间:2013-09-15 19:46:01

标签: javascript html css

我正在组建一个2名玩家互相争斗的游戏。

我设置了文档将对象hp out(100)写入的位置。但是,当我制作一个玩家遭受10点伤害的事件时,它应该在hp栏中写出90。相反,它写出了10090.

如何在前一个值更新的地方获取它,而不是继续写入前一个值?

function player (hp, mana, stamina){
    this.hp = hp;
    this.mana = mana;
    this.stamina = stamina; 
    }

function npc (hp, mana, stamina) {
    this.hp = hp;
    this.mana = mana;
    this.stamina = stamina;
    }

var alistar = new player (100, 50, 30);
var dragon = new npc (100, 50, 30);

document.getElementById("hp").innerHTML += alistar.hp;

if ( 0 < 1) {
    alistar.hp = alistar.hp - 10;
    document.getElementById("hp").innerHTML += alistar.hp;
}

执行=符号工作,但它删除了我在那里的任何HTML单词。我想我可以为我的HTML需求制作第二个div框并保持值分开。

2 个答案:

答案 0 :(得分:0)

只需添加=符号代替+=

=运算符会覆盖以前的值。另一方面,+=+运算符和=运算符之间的联合,并且是实现下一个运算符的“短路”:

例如,如果要为变量添加值,可以执行以下操作:

var a = 3,
    value = 10; /* Your value, i.e. 10 */

a = a + value; /* a values 13 */

但是,您可以使用+=运算符获得相同的结果:

var a = 3,
    value = 10; /* Your value, i.e. 10 */

a = += value; /* This adds the value of a to the value of value variable. */

您可以认为,a的值也是13,如下例所示。


关于你的代码...

<强> CODE

if ( 0 < 1) {
    alistar.hp = alistar.hp - 10;
    document.getElementById("hp").innerHTML = alistar.hp; /* UPDATE */
}

答案 1 :(得分:0)

if ( 0 < 1) {
alistar.hp = alistar.hp - 10;
document.getElementById("hp").innerHTML = alistar.hp;

}

+ =连接值并将它们加在一起(看似字符串格式)。相反,您希望使用“=”将hp的值分配给hp元素,覆盖现有的innerHTML。