Javascript.RU

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

Не знаю как сделать. Заранее спасибо.
как сделать так что бы это работало?)
есть settings это object
settings['out'] -> dom element
settings['innerType'] -> может быть innerHTML или же innerText
settings['replace'] -> true или false
хочу сделать без множества if и else
settings['out'].settings['innerType']+(settings['replace']==true? '=': '+=')+ text
может как то через eval запустить.
Ответить с цитированием
  #2 (permalink)  
Старый 07.05.2019, 12:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Иванasd2
хочу сделать без множества if и else
settings['out'].settings['innerType']+(settings['replace']==true? '=': '+=')+ text
Так тут и нет условных операторов...
Ответить с цитированием
  #3 (permalink)  
Старый 07.05.2019, 13:35
Новичок на форуме
Отправить личное сообщение для Иванasd2 Посмотреть профиль Найти все сообщения от Иванasd2
 
Регистрация: 07.05.2019
Сообщений: 7

Так я пытаюсь от них избавиться. раньше было так
if(settings['innerType'] == 'innerHTML') {
    if(settings['replace'] == true) {
        settings['out'].innerHTML = text;
    } else {
        settings['out'].innerHTML += text;
    }
} else {
    if(settings['replace'] == true) {
        settings['out'].innerText = text;
    } else {
        settings['out'].innerText += text;
    }
}

Последний раз редактировалось Иванasd2, 07.05.2019 в 13:41. Причина: не красиво
Ответить с цитированием
  #4 (permalink)  
Старый 07.05.2019, 15:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Иванasd2
settings['replace'] == true
Это масло масляное...
Заменяется на
settings['replace']
Ответить с цитированием
  #5 (permalink)  
Старый 07.05.2019, 15:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Иванasd2
settings['innerType'] == 'innerHTML'
Это условие вообще не понятно...
Поскольку действия в разных случаях выполняются одни и те же.
Ответить с цитированием
  #6 (permalink)  
Старый 07.05.2019, 15:41
Новичок на форуме
Отправить личное сообщение для Иванasd2 Посмотреть профиль Найти все сообщения от Иванasd2
 
Регистрация: 07.05.2019
Сообщений: 7

Сообщение от ksa Посмотреть сообщение
Это условие вообще не понятно...
Поскольку действия в разных случаях выполняются одни и те же.
Цитата:
Поскольку действия в разных случаях выполняются одни и те же.
как же одни и те же в первом блоке
innerHTML
а во втором
innerText
Ответить с цитированием
  #7 (permalink)  
Старый 07.05.2019, 15:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Иванasd2 Посмотреть сообщение
раньше было так
if(settings['innerType'] == 'innerHTML') {
    if(settings['replace'] == true) {
        settings['out'].innerHTML = text;
    } else {
        settings['out'].innerHTML += text;
    }
} else {
    if(settings['replace'] == true) {
        settings['out'].innerText = text;
    } else {
        settings['out'].innerText += text;
    }
}
Можно заменить на такой вариант...

var typ=(settings['innerType'] == 'innerHTML')? 'innerHTML': 'innerText';
if (settings['replace']) {
	settings['out'][typ] = '';
}
settings['out'][typ] += text;

Или вообще на такое, если settings['innerType'] имеет правильные значения - innerHTML или innerText...
var typ=settings['innerType'];
if (settings['replace']) {
	settings['out'][typ] = '';
}
settings['out'][typ] += text;
Ответить с цитированием
  #8 (permalink)  
Старый 07.05.2019, 15:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Иванasd2 Посмотреть сообщение
как же одни и те же в первом блоке
innerHTML
а во втором
innerText
Ага, заметил но позже.
Смотри вариант выше...
Ответить с цитированием
  #9 (permalink)  
Старый 07.05.2019, 15:52
Новичок на форуме
Отправить личное сообщение для Иванasd2 Посмотреть профиль Найти все сообщения от Иванasd2
 
Регистрация: 07.05.2019
Сообщений: 7

спасибо. ну раз дальше сократить не как то нужно тему закрывать
Ответить с цитированием
  #10 (permalink)  
Старый 07.05.2019, 15:53
Новичок на форуме
Отправить личное сообщение для Иванasd2 Посмотреть профиль Найти все сообщения от Иванasd2
 
Регистрация: 07.05.2019
Сообщений: 7

собственно как это сделать
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать такую страницу mortido Элементы интерфейса 11 02.10.2014 07:20
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как сделать растягивающийся слайд вместо фиксированного? Danilkin500 Общие вопросы Javascript 0 18.11.2013 17:51
Как сделать калькулятор и с чего начать? A.P. Yellowman Общие вопросы Javascript 3 15.11.2013 21:32
Добавить функцию, не знаю как сделать maxim96 Элементы интерфейса 0 23.07.2011 21:16