2013-03-13 6 views
1

В конечном итоге у меня может быть «Название 1E». Это создает проблему, так как соответствующий массив будет требовать от меня создания ["Title 1E", '8'] (чего я бы не хотел делать) или создания заполнителей для всех потенциальных заголовков 1 (т. Е. Изменения на ["Title 2A", '100'] и создания пустого 4-го заголовка 1-го заголовка) , тем самым делая очень длинное меню, заполненное пустыми линиями.Добавление значения в середине массива, в котором используется каскадный выпадающий список

я вручную вставить соответствующий массив в subsubmenu

If submenu[0].push(4,1," "Title 1E", '4' ") работаешь, как я могу изменить следующее ["Title 2A", '5']

Надеется, что это имеет некоторый смысл. Это еще не все ясно в моей голове.

(function() { 
var submenu= [ 
     [ ["Title 1A", '0'], 
      ["Title 1B", '1'], 
      ["Title 1C", '2'], 
      ["Title 1D", '3'] 
     ], 

     [  ["Title 2A", '4'], 
      ["Title 2B", '5'], 
      ["Title 2C", '6'], 
      ["Title 2D", '7'] 
     ], 


]; 

//the Array below populates a sub-submenu when a selection is made above 


var subsubmenu= [   

[ ["Issue 1A1", 'resonse1a1'], 
     ["Issue 1A2", 'response1a2'], 
     ["Issue 1A3", 'response1a3'], 
     ["Issue 1A4", 'response1a4'] 
    ], 

    [ ["Issue 1B1", 'resonse1b1'], 
     ["Issue 1B2", 'resonse1b2'], 
     ["Issue 1B3", 'resonse1b3'] 
    ], 


    [ ["Issue 1C1", 'resonse1c1'] 
    ], 
     // etc...    
     ]; 
+0

кажется сложным. Может быть, есть способ создать свое меню, которое не нуждается в этих идентификаторах (или что бы они там не были), или, может быть, эти идентификаторы не должны быть последовательными? – James

+0

Я тоже подумал. Спасибо, Джеймс. – NelsonBig

ответ

0

Вам необходимо вручную прокрутить оставшиеся предметы и увеличить счетчик вручную. Как это

var submenu= [ 
     [ ["Title 1A", '0'], 
      ["Title 1B", '1'], 
      ["Title 1C", '2'], 
      ["Title 1D", '3'] 
     ], 

     [  ["Title 2A", '4'], 
      ["Title 2B", '5'], 
      ["Title 2C", '6'], 
      ["Title 2D", '7'] 
     ], 
]; 

var insert_at=0; 
submenu[insert_at].push(["Title 1E", '4']); 

// Since the item will be pushed at the last position in the corresponding array 
// We need to increase the counter i.e. item at position 1 for all the following 
//items in the other arrays 
for(i=insert_at+1;i<submenu.length;i++){ 
    for(j=0;j<submenu[i].length;j++){ 
     submenu[i][j][1]++; 
    } 
} 

// Now display that to confirm that it works ok 
for(i=insert_at+1;i<submenu.length;i++){ 
    for(j=0;j<submenu[i].length;j++){ 
     document.write(submenu[i][j]); 
    } 
} 

Проверьте это в http://jsfiddle.net/gunjankarun/zCjY5/

+0

Хотя не уверен, что это сработает, я проверю это. Я думаю, что мне, возможно, просто придется укусить пулю на этом и начать с '[" Title 1E ", '8']' – NelsonBig