Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.02.2017, 11:45
Аспирант
Отправить личное сообщение для SaM1001 Посмотреть профиль Найти все сообщения от SaM1001
 
Регистрация: 09.02.2017
Сообщений: 30

Вопрос по jquery switch-case, не пойму где ошибка
Всем здрасти! Моя первая тема на форуме, сожалею, что сразу с вопросами сюда пришёл, но парюсь с этим куском кода. Кто может подсказать почему не отображается картинка
Вот этот код
$(function () {
            $('#image').change(function () {
                switch ($('#kversion').text()) {
                    case 1: {
                        if (arr[i].SCO == '1' || '2' || '3')
                            devImage = "../image/gk/img1.png";
                    }
                    case 2: {
                        if (arr[i].SCO == '4' || '5' || '6')
                            devImage = "../image/gk/img2.png";
                    }
                    case 3: {
                        if (arr[i].SCO == '7' || '8' || '9')
                            devImage = "../image/gk/img3.png";
                        break;
                    }
                    case 4: {
                        if (arr[i].SCO == '10' || '11' || '12')
                            devImage = "../image/gk/img3.png";
                        break;
                    }
                    case 5: {
                        if (arr[i].SCO == '13' || '14' || '15')
                            devImage = "../image/gk/img1.png";
                        break;
                    }
                    case 6: {
                        if (arr[i].SCO == '16' || '17' || '18')
                            devImage = "../image/gk/img2.png";
                        break;
                    }
                    case 7: {
                        if (arr[i].SCO == '19' || '20' || '21')
                            devImage = "../image/gk/img3.png";
                        break;
                    }
                    case 8: {
                        if (arr[i].SCO == '22' || '23' || '24')
                            devImage = "../image/gk/img1.png";
                        break;
                    }
                    case 9: {
                        if (arr[i].SCO == '25' || '26' || '27')
                            devImage = "../image/gk/img2.png";
                        break;
                    }
                    case 10: {
                        if (arr[i].SCO == '28' || '29' || '30')
                            devImage = "../image/gk/img3.png";
                        break;
                    }
                }

            });
        });


Цепляю отсюда значение от 1 до 30:
<label type=\"text\" id=\"kversion\" class=\"einheit\" style=\"margin-left:2px; width:auto; top:0px; align:left;\">" + arr[i].KV + "</label>


И хочу его сдесь выдать:
<div class=\"devImg\"><label id=\"image\" style=\"width:150px; position:relative; \"></label></div>


У кого глаз на это набит, помогите разобраться и укажите на ошибки

Последний раз редактировалось SaM1001, 09.02.2017 в 16:31.
Ответить с цитированием
  #2 (permalink)  
Старый 09.02.2017, 12:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от SaM1001
if (arr[i].SCO == '1' || '2' || '3')
https://learn.javascript.ru/array-me...of-lastindexof

if (['1' , '2' , '3'].indexOf(arr[i].SCO) !== -1)

Последний раз редактировалось рони, 09.02.2017 в 12:12.
Ответить с цитированием
  #3 (permalink)  
Старый 09.02.2017, 12:38
Аспирант
Отправить личное сообщение для SaM1001 Посмотреть профиль Найти все сообщения от SaM1001
 
Регистрация: 09.02.2017
Сообщений: 30

рони, спасибо огромное за отзыв, но что-то не получается ни фига. Изменил коде на вот так:

$(function () {
            $('#image').change(function () {
                switch ($('#gkennung').text()) {
                    case 0: {
                        if (['1', '2', '3'].indexOf(arr[i].GK) !== -1)
                            txt = "<img src=\"../imag/gk/img1.png\" height=\"40\" width=\"40\">";
                        break;
                    }
                    case 1: {
                        if (['4', '5', '6'].indexOf(arr[i].SCO) !== -1)
                            txt = "<img src=\"../imag/gk/img2.png\" height=\"40\" width=\"40\">";
                        break;
                    }...


и как мне кажется, ошибка сидит вот тут:
switch ($('#gkennung').text())

потому, что дебаг проходит до change (function) потом больше ничего не видит. Хотя в arr[1].GK значения все присутсвуют...
Короче запутался я слегка

Последний раз редактировалось SaM1001, 09.02.2017 в 16:31.
Ответить с цитированием
  #4 (permalink)  
Старый 09.02.2017, 14:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

SaM1001,
ваш код не знает что такое arr[i].GK
Ответить с цитированием
  #5 (permalink)  
Старый 09.02.2017, 14:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от SaM1001
помогите разобраться
Как вариант...

var typ=1;
var sco='2';
obj=[
	{
		sco: ['1','2','3'],
		url: '../image/gk/img1.png'
	},
	{
		sco: ['4','5','6'],
		url: '../image/gk/img2.png'
	}
];
var url=(obj[typ-1].sco.indexOf(sco)!==-1)? obj[typ-1].url: 'no url';
alert(url);

Всяко интереснее будет...
Ответить с цитированием
  #6 (permalink)  
Старый 09.02.2017, 15:21
Аспирант
Отправить личное сообщение для SaM1001 Посмотреть профиль Найти все сообщения от SaM1001
 
Регистрация: 09.02.2017
Сообщений: 30

Сообщение от рони Посмотреть сообщение
SaM1001,
ваш код не знает что такое arr[i].GK
Знает, там значение 30 стоит (это мне дебагер показал)!

У меня ещё другой вопрос:

Я коневетирую децимальное число вот так decimalToHex(arr[i].GK) есть ли вариант присвоить ещё одну функцию сюда, которая после каждого символа проставит мне точку?
Ответить с цитированием
  #7 (permalink)  
Старый 09.02.2017, 15:29
Аспирант
Отправить личное сообщение для SaM1001 Посмотреть профиль Найти все сообщения от SaM1001
 
Регистрация: 09.02.2017
Сообщений: 30

Не, тут совсем мудренно как-то, я не понимаю как твой код работает))) Но спасибо за совет!
Ответить с цитированием
  #8 (permalink)  
Старый 09.02.2017, 15:59
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

SaM1001,
Сообщение от SaM1001
и как мне кажется, ошибка сидит вот тут:
switch ($('gkennung').text())
А что такое у вас $('gkennung') ?
Ответить с цитированием
  #9 (permalink)  
Старый 09.02.2017, 16:16
Аспирант
Отправить личное сообщение для SaM1001 Посмотреть профиль Найти все сообщения от SaM1001
 
Регистрация: 09.02.2017
Сообщений: 30

Сообщение от Dilettante_Pro Посмотреть сообщение
SaM1001,


А что такое у вас $('gkennung') ?
У себя я эту ошибку уже исправил, там # не хвататет - это id, сорри, сам не сразу заметил

Последний раз редактировалось SaM1001, 09.02.2017 в 16:21.
Ответить с цитированием
  #10 (permalink)  
Старый 09.02.2017, 17:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от SaM1001
я эту ошибку уже исправил
Исправьте и другую:

switch ($('#kversion').text()) { - здесь значение будет строкой
case 1: { - а здесь строку пытаемся сравнить с числом
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не пойму откуда ошибка hesrun jQuery 9 15.02.2013 19:53
Расшифровка кода, генерируемого flash. ГостьФорума Общие вопросы Javascript 6 02.02.2011 01:26
Вопрос по jquery aceton jQuery 0 19.08.2010 05:50
Вопрос по switch N_L Серверные языки и технологии 1 05.11.2009 00:57
Вопрос про $ в jquery vvsh Общие вопросы Javascript 6 06.09.2009 18:50