2015-12-16 2 views
3

Я пытаюсь добавить контент из div в массив. В основном, если вы нажмете divs для Apple, Banana и Kiwi, результирующий массив сохранит «Apple, Banana, Kiwi» в том порядке, в котором они были нажаты.Нажатие содержимого на массив

$('.fruit').click(function addFruit() { 
    var fruits = []; 
    var fruit = $(this).text(); 
    fruits.push(fruit); 
    $('.result').text(fruits + ', '); 
}); 

Вот моя скрипка: https://jsfiddle.net/bjhj5p41/2/

Любые идеи?

+4

Сделать 'вар фрукты = [] ; 'global..Try this: https://jsfiddle.net/bjhj5p41/3/ – Rayon

+2

Локальная переменная' fruit' переименована zed для каждого вызова, поэтому он всегда теряет одно значение, которое было нажато. –

ответ

6
var fruits = []; // make it global 
$('.fruit').click(function() { // no need to use addFruit here 
    var fruit = $(this).text(); 
    fruits.push(fruit); 
    $('.result').text(fruits); // use (fruits) cause its an array it will return commas itself 
}); 

Working Demo

Дополнительно: Я думаю, нет необходимости, чтобы подтолкнуть то же значение дважды в массиве, так что вы можете использовать

if($.inArray(fruit,fruits) == -1){ 
    // value not in array 
} 

Demo

+0

Ты легенда –

+0

@RourkeMcLaren Добро пожаловать .. Удачи :) –