Как я могу очистить это еще, если код в функции

#jquery #video #dynamic

#jquery #Видео #динамический

Вопрос:

На моей странице есть несколько проигрывателей Youtube, и мне нужно динамически добавлять идентификатор видео для воспроизведения в отдельных проигрывателях. Я получаю идентификатор из значения переключателя. Как я могу уменьшить этот беспорядок else if?

Когда я нажимаю переключатель, я хотел бы, чтобы видеоид вставлялся динамически. Кроме того, как я могу уменьшить количество операторов else if?

    if ($(this).val() =="KiTi-uJ2vRg") {
                player6.loadVideoById('KiTi-uJ2vRg')
                $('#fifth-set').show();
             
            }
            else if ($(this).val() =="gZX7H8Yt08k") {
                player7.loadVideoById('gZX7H8Yt08k')
                $('#sixth-set').show();
             
            }
            else if ($(this).val() =="xMx44vD90vo") {
                player8.loadVideoById('xMx44vD90vo')
                $('#seventh-set').show();
                
             
            }
            else if ($(this).val() =="cf3h80n-vLE") {
                player8.loadVideoById('cf3h80n-vLE')
                $('#eigth-set').show();
              
             
            }
            else if ($(this).val() =="WXMVaWANGaY") {
                player8.loadVideoById('WXMVaWANGaY')
                $('#ninth-set').show();
               
             
            }
            else if ($(this).val() =="M7l-jnKmmkM") {
                player8.loadVideoById('M7l-jnKmmkM')
                $('#tenth-set').show();
                
             
            }
            else if ($(this).val() =="S8Pn6nN8Hb8") {
                player9.loadVideoById('S8Pn6nN8Hb8')
                $('#eleventh-set').show()
                
             
            }
            else if ($(this).val() =="4fAMgNCjr9A") {
                player10.loadVideoById('4fAMgNCjr9A')
                $('#eleventh-set').show()
                
             
            }
            else if ($(this).val() =="6N6S-R0kTGg") {
                player11.loadVideoById('6N6S-R0kTGg')
                $('#eleventh-set').show()
            }
            else if ($(this).val() =="OkrXfg4LvJs") {
                player12.loadVideoById('OkrXfg4LvJs')
                $('#eleventh-set').show()
            }
            else if ($(this).val() =="HWpcSAxJnns") {
                player13.loadVideoById('HWpcSAxJnns')
                $('#twelth-set').show()
                
            }
            else if ($(this).val() =="SVM1uUE0LGY") {
                player14.loadVideoById('SVM1uUE0LGY')
               
            }
 

Комментарии:

1. используйте условие переключения вместо else, если — w3schools.com/js/js_switch.asp

Ответ №1:

может быть, вы можете использовать карту

 const val = $(this).val();

const tracker = {
    "KiTi-uJ2vRg": [player6, "#fifth-set"],
    "gZX7H8Yt08k": [player7, "#sixth-set"],
    "xMx44vD90vo": [player8, "#seventh-set"],
}

if (tracker[val]) {
    tracker[val][0].loadVideoById(val);
    $(tracker[val][1]).show();
}

 

Комментарии:

1. Спасибо D. Seah. Это очень помогло мне!