如何使用内置函数更改JavaScript中的属性值?
我试图通过单击按钮来简单地更改某个人年龄的值,这是我拥有的对象中的属性值。我觉得这应该行得通如何使用内置函数更改JavaScript中的属性值?,javascript,Javascript,我试图通过单击按钮来简单地更改某个人年龄的值,这是我拥有的对象中的属性值。我觉得这应该行得通 <p id="demo"></p> <button onclick="incrementAge()">Click me</button> <script> var person = { name:"Rich", age:25, eyeColor:"blue" }; document.getElementById("
<p id="demo"></p>
<button onclick="incrementAge()">Click me</button>
<script>
var person = {
name:"Rich",
age:25,
eyeColor:"blue"
};
document.getElementById("demo").innerHTML = person.name + " " + person.age;
function incrementAge(){
return person.age += 1
}
</script>
点击我
个人变量={
姓名:“富”,
年龄:25岁,
眼睛颜色:“蓝色”
};
document.getElementById(“demo”).innerHTML=person.name+“”+person.age;
函数递增(){
返回人。年龄+=1
}
您还需要重置页面上元素的内容:
<p id="demo"></p>
<button onclick="incrementAge()">Click me</button>
<script>
var person = {
name:"Rich",
age:25,
eyeColor:"blue"
};
function incrementAge(){
person.age += 1;
document.getElementById("demo").innerHTML = person.name + " " + person.age;
}
</script>
点击我
个人变量={
姓名:“富”,
年龄:25岁,
眼睛颜色:“蓝色”
};
函数递增(){
人.年龄+=1;
document.getElementById(“demo”).innerHTML=person.name+“”+person.age;
}
您还需要重置页面上元素的内容:
<p id="demo"></p>
<button onclick="incrementAge()">Click me</button>
<script>
var person = {
name:"Rich",
age:25,
eyeColor:"blue"
};
function incrementAge(){
person.age += 1;
document.getElementById("demo").innerHTML = person.name + " " + person.age;
}
</script>
点击我
个人变量={
姓名:“富”,
年龄:25岁,
眼睛颜色:“蓝色”
};
函数递增(){
人.年龄+=1;
document.getElementById(“demo”).innerHTML=person.name+“”+person.age;
}
问题在于document.getElementById(“demo”)。innerHTML未绑定到HTML视图
值正在更改,但您没有显示它。问题在于document.getElementById(“demo”)。innerHTML未绑定到HTML视图
值正在更改,但您没有显示它。我想您希望显示新时代。如果是这样的话,您将需要用它更新innerHTML
function incrementAge(){
person.age += 1;
document.getElementById("demo").innerHTML = person.name + " " + person.age;
}
我猜你想让新时代展现出来。如果是这样的话,您将需要用它更新innerHTML
function incrementAge(){
person.age += 1;
document.getElementById("demo").innerHTML = person.name + " " + person.age;
}
我认为您的代码实际上按照您所描述的那样工作,但是效果与您所期望的不同
document.getElementById("demo").innerHTML = person.name + " " + person.age;
^这不是恒定状态的瞬态表达式。您的代码中没有任何内容可以说“始终让这种情况发生。”;它将一次而不是一次地做出改变。您应该做的是将其放入
refreshNameAge()
函数中,并在任何可能更改姓名和年龄的函数之后调用它。或者,您可以使用Object.defineProperty
将其绑定到属性getter/setter中,尽管这会变得更复杂。我认为您的代码实际上是按照您所描述的那样工作的,但效果与您所期望的不同
document.getElementById("demo").innerHTML = person.name + " " + person.age;
^这不是恒定状态的瞬态表达式。您的代码中没有任何内容可以说“始终让这种情况发生。”;它将一次而不是一次地做出改变。您应该做的是将其放入
refreshNameAge()
函数中,并在任何可能更改姓名和年龄的函数之后调用它。或者,您可以使用Object.defineProperty
将其绑定到属性getter/setter中,尽管这样会更加复杂。Sooo?它确实起作用并改变了属性。为什么你不这么认为?你返回的值是什么?当然,你可能想在变异后将人物
重新渲染为#demo
。Sooo?它确实起作用并改变了属性。为什么你不这么认为?你将值返回给什么?当然,你可能希望在变异后将人物
重新渲染为#演示
。