2015-11-25 69 views
0

所以基本上,我做了一個空的數組與JS,它是根據用戶選擇動態填充。現在,我想要一個按鈕出現在天氣或沒有值存儲在數組內。我似乎無法做到這一點,即使所需的值在數組內。如果這些信息有所不同,陣列和按鈕創建都是同一腳本的一部分。 我的代碼是這樣的:基於數組中的值創建一個按鈕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); 
} 

我在做什麼錯的,是有希望嗎?

+1

來自這個:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf indexOf不返回一個布爾值,但-1如果爲false。這可能是第一個問題 –

回答

3

if (array.indexOf("anItem") == true){ 

行更改爲

if (array.indexOf("anItem") != -1){ 

,讓我們知道,如果有任何其他的問題。 indexOf()返回數組中的值的位置,如果找不到則返回-1。

+0

我測試了一下,但它似乎解決了我的問題。我沒有想到indexOf的返回值不是真/假。我將在稍後進一步測試。感謝您的幫助! –

1

這將工作: -

array = []; 

if(array.indexOf("anItem") != -1){ 
    //Item available 
}else{ 
    // Item not available 
} 

indexOf返回一個項目的索引的數組,如果沒有找到該項目,則返回-1。以上代碼檢查indexOf("anItem")是否返回-1

編輯

順便說一句,一個名爲includes()方法的ECMAScript 7.請參閱this的一部分。但是,ECMAScript 7缺少瀏覽器支持。

+0

謝謝你的評論,這是非常有幫助的。我會檢查你提到的includes()方法,儘管它不靈活。 –

+0

@IJJJS不客氣。 – Arjun

相關問題