尽管调用了函数,但JavaScript中的全局变量未更新


<script>
var seatselected = 'Hola'
function colorchange(element) {
element.style.background = "#ff914d";
element.style.color = "white";
seatselected += element.innerHTML;
seatselected += '+';
//alert(seatselected);
}
document.getElementById("XYZ").innerHTML = seatselected;
</script>

这是我代码的JS部分。当我调用colorchange函数时,颜色会发生变化。因此,onlick((在HTML中不是一个问题。但是,选定的座位不会更新。innerHTML代码给了我";Hola";,尽管我知道已经执行了颜色更改。同时,如果我在函数中使用alert,它会用我期望全局变量具有的innerHTML值来提醒我。

编辑:当我调用函数时,这是代码的HTML部分。函数调用成功,因为当我单击元素时,背景颜色和文本颜色会发生变化。

<td class="highlight" onclick="colorchange(this)">B1</td>
<td class="highlight" onclick="colorchange(this)">B2</td>
<td class="highlight" onclick="colorchange(this)">B3</td>
<td class="highlight" onclick="colorchange(this)">B4</td>
<p id="XYZ"></p>

我想做的是,我想在一个字符串中添加被点击的元素的innerhtml。现在,当我尝试将它放在XYZ中时,函数内部所做的更改不会显示出来。

  1. 拿一张纸。(本文表示seatselected变量(
  2. 写入";Hola";在那张纸上。(这是字符串(
  3. 把这张纸读出来。(这表示警报(
  4. 复印一张纸(这表示指定给元素的innerHTML,正如您在注释中提到的那样(
  5. 让朋友向你挥手(按下按钮(,当他们在纸上写下不同的东西时

现在。你有没有听到自己大声说,这张纸上现在写的是什么?复印件上的文字变了吗?

说明书(程序(并没有告诉你每次论文发生变化时都要读出。

它们也不可能让你在纸上写的第二件事回到过去,取代";Hola">之前,您读出并复印了上面打印的内容。


如果您想在按下按钮后看到警报,则需要编写代码,在按下按钮后调用警报。

即在您从事件处理程序调用的函数中

即您在哪里评论了警报

同样,如果要更改分配给innerHTML的值,则需要显式更改它。将字符串分配给innerHTML将分配当前字符串值,而不是对从中复制该值的变量的引用。

刚刚在函数中添加了alert()

<!DOCTYPE html>
<html>
<head>
<title>Add Checkbox Dynamically using JavaScript</title>
</head>
<body>
<table>
<td class="highlight" onclick="colorchange(this)">B1</td>
<td class="highlight" onclick="colorchange(this)">B2</td>
<td class="highlight" onclick="colorchange(this)">B3</td>
<td class="highlight" onclick="colorchange(this)">B4</td>
</table>
</body>
<script>
var seatselected = 'Hola'
function colorchange(element) {
element.style.background = "#ff914d";
element.style.color = "white";
seatselected += element.innerHTML;
seatselected += '+';
alert(seatselected);
}
*/</script>
</html>

相关内容

  • 没有找到相关文章

最新更新