Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > switch


Автор: Mushu 25.6.2007, 14:50
Вопрос такой как правильно использовать оператор switch точнее что в него нужно положить, чтоб условие выполнилось q[0].name_teg == "select"

Код

var q = new Array();
    
    
            q[0] = new Object();
            q[0].name_teg = "select";
            q[0].id = 1;
            q[0].name = "Imya";
            
            q[1] = new Object();
            q[1].name_teg = "option";
            q[1].value = 1;
            q[1].text = "Imya-1";
            
            q[2] = new Object();
            q[2].name_teg = "option";
            q[2].value = 1;
            q[2].text = "Imya-2";
                    
            
            
 
        
        
switch(????) {
    case (q[0].name_teg == "select"):
        alert("yes");
        break
    default:
       alert("nooo");
}

Автор: ksnk 25.6.2007, 15:01
Нечего нельзя положить в select, чтобы 
Цитата(Mushu @  25.6.2007,  14:50 Найти цитируемый пост)
... условие выполнилось q[0].name_teg == "select"
 Select  http://wdh.suncloud.ru/js06.htm#ref363 

Автор: Zeroglif 25.6.2007, 15:17
Mushu, 

http://forum.vingrad.ru/forum/topic-160583/kw-switch-case.html

Я могу, конечно, ответить на выбор:

a) положи true;
б) измени логику в рамках switch;
в) не используй switch вообще;

Но лучше бы тебе самому попробовать разобраться с switch statement, не самая простая конструкция, но в мануалах/google примеров - море (вот и ksk даёт ссылку), сложно не понять... а если тебя эксперт с репутацией в этом форуме (vasac) посылает RTFM - не стоит ему http://forum.vingrad.ru/index.php?showtopic=160583&view=findpost&p=1176534, он не глумится, он так борется с копипастерами и ленивцами ради их же пользы. По вопросу же всё видно. smile 

Автор: Mushu 25.6.2007, 15:17
Я знаю что он работает по другому я показываю что нужно задать в теле свича, чтоб логика не нарушалась в маем верхнем не правильном примере. Я как раз и задаю чтоб люди умные и подсказали как правильно нужно реализовать логику.

Код

var q = new Array();
    
    
            q[0] = new Object();
            q[0].name_teg = "select";
            q[0].id = 1;
            q[0].name = "Imya";
            
            q[1] = new Object();
            q[1].name_teg = "option";
            q[1].value = 1;
            q[1].text = "Imya-1";
            
            q[2] = new Object();
            q[2].name_teg = "option";
            q[2].value = 1;
            q[2].text = "Imya-2";
                    
            
            
 
        
        
switch(????) {
    case ("select"):
        alert("yes");
        break
    default:
       alert("nooo");
}



Автор: Mushu 25.6.2007, 15:58
Хорошо зайдем с другой стороны как ниже приведенный код можно реализовать через switch

Код

var q = new Array();
    
    
            q[0] = new Object();
            q[0].name_teg = "select";
            q[0].id = 2;
            q[0].name = "Imya";
            q[0].text = "!!!!!";
            
            
            q[1] = new Object();
            q[1].name_teg = "option";
            q[1].value = 1;
            q[1].text = "Imya-1";
            
            q[2] = new Object();
            q[2].name_teg = "option";
            q[2].value = 1;
            q[2].text = "Imya-2";
                    
            
        var mas_element = new Array();    
      for(var i=0; i<q.length; i++)
        {    
        if (q[i].name_teg == "select")
            {
                mas_element[i] = new Object();
                mas_element[i] =document.createElement("SELECT");
                mas_element[i].name = q[i].name_teg;
                mas_element[i].id = q[i].id;
                mas_element[i].classes = q[i].classes;
                mas_element[i].value = q[i].value
                mas_element[i].text  =q[i].text;
                document.getElementById("podst").appendChild(element_select);
            }
        
        if (q[i].name_teg == "option")
            {
                mas_element[i] = new Object();
                mas_element[i] =document.createElement("OPTION");
                mas_element[i].name = q[i].name_teg;
                mas_element[i].id = q[i].id;
                mas_element[i].classes = q[i].classes;
                mas_element[i].value = q[i].value
                mas_element[i].text  =q[i].text;
                document.getElementById("podst").appendChild(months);
            }
            
            
        
        }

Автор: Mushu 28.6.2007, 12:49
Вот так 
Код

var q = new Array();

            debugger;
            q[0] = new Object();
            q[0].name_teg = "select";
            q[0].id = 2;
                        
            
            q[1] = new Object();
            q[1].name_teg = "option";
            q[1].value = "P";
            q[1].text = "Пример1";
            
            q[2] = new Object();
            q[2].name_teg = "option";
            q[2].value = "O";
            q[2].text = "Пример2";
            
        
            
            
            

  var select = null;    
        for(var i=0; i<q.length; i++)
        {    
        switch(q[i].name_teg){
        case 'select':
                var e=document.createElement("SELECT");
                e.name = q[i].name_teg;
                e.id = q[i].id;
                //e.onchange = d;  //обработчик
                e.value = q[i].value
               
                select=document.getElementById("1").appendChild(e); //?????????????????
                break;        
        
        case'option':
                var e =document.createElement("OPTION");
                e.name = q[i].name_teg;
                
                e.value = q[i].value
                e.text  =q[i].text; 
                if(select)           
                 try {e=select.add(e, null) } //standards compliant; doesn't work in IE
                     catch(ex) {
                        e=select.add(e,select.options.length); // IE only
               }
               e=null
                break;
        
    
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)