Javascript 试图将变量连接到img源中,但忽略该变量

Javascript 试图将变量连接到img源中,但忽略该变量,javascript,this,concatenation,src,Javascript,This,Concatenation,Src,我通过制作”来测试它一个变量,当我返回tmp不是空字符串时的变量时,它显示为“即它忽略了tmp 有什么帮助吗 我正在尝试更改web开发项目的“Minecraft(c)Crafting Table”问题。现在似乎唯一的问题是,您需要使用。调用来设置putItem中的this值 <img src = 'images/wood.png' onclick = 'tmp = "wood";'> <td onclick = "grid1 = tmp; checkEmpty(); putIt

我通过制作
”来测试它一个变量,当我返回tmp不是空字符串时的变量时,它显示为
即它忽略了tmp

有什么帮助吗

我正在尝试更改web开发项目的“Minecraft(c)Crafting Table”

问题。现在似乎唯一的问题是,您需要使用
。调用
来设置
putItem
中的
this

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



不,我不知道tmp是我试图放入grid1的对象。我将grid1作为全局变量,它也需要接收tmp@ArcaneExplosion:好的,我会更新。如果首先单击图像,则只需使用
.call
putItem
函数中设置
this
值。我需要跟踪什么是
grid1
,并将
tmp
变量分配给grid1。呃,也许我应该把假设的东西放在h/o上。你能举个例子说明如何使用
.call
?我不知道该方法是如何使用的。@ArcaneExplosion:
.call()
方法只是调用函数的另一种方法,它允许您在函数中设置
this
的值。因此,按照您的方式,在您的
putItem
函数中,
this
将作为对
窗口的引用。但是如果您执行
putItem.call(this)
,因为
this
在内联
onclick
处理程序中将是使用
单击的元素。call(this)
将使
putItem
中的
this
具有相同的值。@ArcaneBlombly:不客气。如果有帮助,它会调用同一个函数两次。该功能会提醒
。第一次不使用
。调用
,第二次使用,并传递字符串作为第一个参数。您将在第二个调用中看到,
this
的值就是该字符串。
<img src = 'images/wood.png' onclick = 'tmp = "wood";'>
<td onclick = "grid1 = tmp; checkEmpty(); putItem(this);">
<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"---^  -->
function putItem( str ) {
    this.innerHTML = "<img src = 'image/" + str + ".png'>";
}
<td onclick = "checkEmpty(); putItem.call(this, 'grid1');">