基本上,我用JS创建了一个空数组,它根据用户选择动态填充。现在,我希望根据天气显示一个按钮,或者不存储数组内的值。我似乎无法做到这一点,即使数组中包含必需的值。如果此类信息有所不同,则阵列和按钮创建都是同一脚本的一部分。 我的代码是这样的:
array = [];
//somewhere along the way it get's filled up...
//...
if (array.indexOf("anItem") == true){
var btn = document.createElement('button');
btn.innerHTML = "Text";
btn.setAttribute('id', 'button2');
paragra.appendChild(btn);
}
我做错了什么,对我有希望吗?
答案 0 :(得分:3)
从
更改行if (array.indexOf("anItem") == true){
到
if (array.indexOf("anItem") != -1){
如果还有其他问题,请告诉我们。 indexOf()返回数组中值的位置,如果找不到则返回-1。
答案 1 :(得分:1)
这将有效: -
array = [];
if(array.indexOf("anItem") != -1){
//Item available
}else{
// Item not available
}
indexOf
返回数组中Item的索引,如果找不到Item,则返回-1
。上面的代码会检查indexOf("anItem")
是否返回-1
。
修改强>
BTW,名为includes()
的方法是ECMAScript 7的一部分。请参阅this。但是,ECMAScript 7缺乏浏览器支持。