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');">