检查THIS是否点击了TD's的值与数组的值匹配
Check if THIS clicked TD's value matches the value of an array
所以我正在制作一款战舰游戏,除了这一点之外,其他一切都很好。我似乎想不出你该怎么做。我想检查单击的TD的值是否与数组中的值匹配,是否确实将innerHTML更改为hit(即X)。(this)代表点击的TD。在这种情况下你能使用indexOf吗?
function play() {
if ((this).value == shipLocations.indexOf((this).value)) {
(this).innerHTML = hit;
}
else {
(this).innerHTML = miss;
}
}
<script>
var shipLocations = ["5"];
function play(button) {
if (-1 != shipLocations.indexOf((button).value)) {
(button).innerHTML = "hit";
}
else {
(button).innerHTML = "miss";
}
}
</script>
<button value="5" onclick="play(this)">meh</button>
假设存储了船舶位置,而不是船舶对象
我觉得你在比较苹果和桔子。indexOf
返回您在shipLocations
数组中查找的值的索引,而不是存储在数组中的船只的实际位置。
更新
fiddle显示,您也以错误的方式访问值属性。以下是正确的方式:
if (parseInt((this).getAttribute("value")) == shipLocations[shipLocations.indexOf(parseInt(this.getAttribute("value")))]) {
(this).innerHTML = hit;
}
this
指的是html元素,而不是javascript对象,您可以使用.
来访问属性。使用getAttribute("value")
工作。
旁注:船只有时会被放置在"接触"的位置。我认为这是违法的;-)
相关文章:
- 查找对象数组是否包含其中一个标记的最快方法
- 检查数组是否包含
- 确定数组是否包含偶数
- 在 JavaScript 中连接字符串或数组是否更快
- 检查对象数组是否具有所有必需的键
- 检查数组是否包含指定的对象
- 在通过套接字发送到客户端之前压缩中等大小的javascript数组是否值得
- 检查数组是否有空元素
- 检查输入框的数组是否为空
- 如何检查JSON数组是否等于
- 检查数组是否已定义并且具有长度
- 检查数组是否包含特定对象
- 什么'最合适的数据结构是什么?(使用一个有间隙的数组是否存在缺点或注意事项?)
- 如何检查子集数组是否包含超集数组之一
- 检查对象数组是否包含布尔值true/false
- 检查数组是否在MongoDB文档中包含帖子ID
- 检查数组是否包含允许或不允许的字符
- 检查 javascript 数组是否不仅包含空值
- 在循环时修改数组是否安全
- 列表/数组是否有效 JSON