【发布时间】:2017-11-29 10:42:14
【问题描述】:
我有这个脚本应该在单击按钮时更改按钮的文本。
<body>
<button onclick="toggleText(this);" id="id">Edit</button>
</body>
function toggleText(element){
var text = document.getElementById(element.id).textContent;
if (text == 'Edit') {
text = 'Done';
} else {
text = 'Edit';
}
}
但它不起作用。仅当您将 document.getElementById(element.id).textContent 直接放入 if 语句时才有效。
如何让变量正确存储?
【问题讨论】:
-
你可以将
getElementById的结果存储到一个变量中,但是它上面的属性不是通过引用传递的,所以你不能这样做...var y = document.getElementById(element.id); y.textContent = "done"; -
为什么不只是
text = element.textContent? -
我明白你在说什么 tymeJV。不敢相信我没想到大卫。
-
“但它不起作用。” JavaScript 是传递/分配 按值。为变量分配新值不会更改另一个变量或属性的值(例外:全局和
with范围)。 -
知道了。我已经习惯了 Lua,它确实可以这样工作。
标签: javascript html document getelementbyid