2016-01-24 1 views
-1

У меня возникла ситуация, когда мне нужно добавить определенные элементы в многомерный массив на основе условия. Это означает, что типы элементов будут основываться на условии.Добавить элементы в массив javaScript внутри оператора if

if(type == 'text-box'){ 
    var title = jQuery("#textbox-title-"+id).val(); 
    var desc = jQuery("#textbox-desc-"+id).val(); 
    eleDetails[id]['content'] = {title:title, content:desc}; 
} 
else if(type == 'image-box'){ 
    var title = jQuery("#imagebox-title-"+id).val(); 
    var imgurl = jQuery("#imagebox-url-"+id).val(); 
    var desc = jQuery("#imagebox-desc-"+id).val(); 
    eleDetails[id]['content'] = {title:title, imgurl:imgurl, content:desc}; 
} 

Итак, как это сделать?

+1

Что вы имеете в виду, Вопросы, требующие помощи по отладке («** почему этот код не работает? **)) должны включать в себя желаемое поведение, * конкретную проблему или ошибку * и * кратчайший необходимый код * для воспроизведения ** в самом вопросе * *. Вопросы без ** ясного заявления о проблеме ** не полезны для других читателей. См.: [Как создать минимальный, полный и проверенный пример.] (Http://stackoverflow.com/help/mcve) –

+0

Хорошо, я обновил вопрос. Думаю, теперь вопрос в порядке – TharinduLucky

+2

Если все остальное в вашем коде работает так, как должно, способ сделать это так, как вы это делаете, учитывая, что eleDetails должен быть объектом, а не массивом. Но, очевидно, что-то не так. Вы проверили консоль ошибок? Какой результат вы получаете, если вы регистрируете eleDetails после запуска кода? Я думаю, вам может понадобиться снова прочитать ссылку @EdCottrell – lucas

ответ

0

Где:

var eleDetails = {}; 

и в цикле: "? Ничего не кажется, работает"

var title = jQuery("#textbox-title-"+id).val(); 
var desc = jQuery("#textbox-desc-"+id).val(); 

// check if eleDetails[id] already exists 
if (!eleDetails[id]) {eleDetails[id] = {};} 

if(type == 'text-box'){ 
    eleDetails[id]['content'] = {title:title, content:desc}; 
} 
else if(type == 'image-box'){ 
    var imgurl = jQuery("#imagebox-url-"+id).val(); 
    eleDetails[id]['content'] = {title:title, imgurl:imgurl, content:desc}; 
} 
+0

'eleDetails' явно массив массива в его коде, а не объект. – Bikas

+0

Возможно, это не самая важная часть моего кода – Gavriel