gpt4 book ai didi

javascript - 试图将一个变量连接到一个 img 源中,但它忽略了该变量

转载 作者:行者123 更新时间:2023-11-30 18:33:08 25 4
gpt4 key购买 nike

var tmp = "";

function putItem()
{
this.innerHTML = "<img src = 'image/"+tmp+".png'>";
}

我还有一个 td 这叫这个

<img src = 'images/wood.png' onclick = 'tmp = "wood";'>
<td onclick = "grid1 = tmp; checkEmpty(); putItem(this);">

我通过制作 "<img src = 'image/"+tmp+".png'>"; 来测试它一个变量,当我返回变量时 tmp 不是空字符串时,它显示为 "<img src = 'image/.png'>"即它忽略了 tmp。

有什么帮助吗?

我正在尝试为 Web 开发项目制作“Minecraft (c) Crafting Table”

最佳答案

问题已更改。现在看来唯一的问题是您需要使用 .call 来设置 this putItem 中的值。

<img src = 'images/wood.png' onclick = 'tmp = "wood";'>
<td onclick = "grid1 = tmp; checkEmpty(); putItem.call(this);">


原始答案

我假设不是这个...

              <!--   v---- assign empty string to global grid1 variable -->
<td onclick = "grid1 = tmp; checkEmpty(); putItem(this);">

你想要这个...

          <!--     v---- assign "grid1" string to global tmp variable -->
<td onclick = "tmp = 'grid1'; checkEmpty(); putItem.call(this);">
<!-- set the value of "this" in "putItem"---^ -->

现在您将 "grid1" 字符串分配给 tmp 变量,并且当您调用 putItem() 时,您重新使用 .call 来设置它的 this 值。


也就是说,为什么不直接传递字符串而不是使用全局变量呢?

function putItem( str ) {
this.innerHTML = "<img src = 'image/" + str + ".png'>";
}

<td onclick = "checkEmpty(); putItem.call(this, 'grid1');">

关于javascript - 试图将一个变量连接到一个 img 源中,但它忽略了该变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9047183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com