2012-12-07 134 views
-1
jQuery('#additional-channels-list select').live('change', function(){ 
    var current_id = parseInt(jQuery(this).val()); 
    select_values.push(current_id); 
    console.log(select_values); 
    console.log(jQuery.inArray(current_id, select_values)); 
}); 

我想創建多個不帶ctrl的選擇,所以我需要將值存儲在數組中。當我試圖檢查值inArray方法返回給我所選元素在選擇列表中的位置,而不是數組中有關當前值的信息。我錯在哪裏?jQuery inArray返回select元素的編號

+0

*」當我嘗試檢查值inArray方法返回到我選擇的元素在選擇列表中的位置,而不是信息關於當前價值在陣列中。「*什麼讓你覺得呢?從上面的代碼中,假設'select_values'是一個數組,你的第二個'console.log'語句將爲你提供數組中current_id的索引,而不是選擇列表。 –

+1

請停止使用'.live()'。它現在已經被棄用了很多年了。使用['.on()'](http://api.jquery.com/on/)(jQuery 1.7+)或['.delegate()'](http://api.jquery.com/delegate/ )代替。 –

+1

http://api.jquery.com/jQuery.inArray/這正是inArray所做的,它會返回匹配的索引。 – joao

回答

0

InArray返回項指標,從jQuery的文檔:

的$ .inArray()方法類似於JavaScript的原生.indexOf()方法 在它返回-1,當它沒有找到一場比賽。如果陣列中的 第一個元素匹配值,$ .inArray()返回0

+0

爲什麼要檢索項目?我們確實在搜索它,所以我們已經有了。 – Bergi

0

使用從inArray返回的索引來獲取select_values中的相應值。

+1

爲什麼搶相應值?我們已經擁有它,否則我們無法搜索它。 – Bergi