Javascript.RU

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

Как сделать несколько условий в цикле
Есть обычный код на JS, который выводит данные из JSON в табличку.
Код сделующий:

<!DOCTYPE html>
<html>
<head>
<style>
	table {
		border-spacing: 20px 20px;
		}
	td, th {	
		color: white;
		padding: 17px;
		font-weight: 600;
		background: green;
		}
	
   .shadow {
    box-shadow: 0 0 10px rgba(0,0,0,0.5);
    padding: 10px;
   }
</style>
</head>

<body>

<script>
	var text = '{"employees":[' +
	'{"Title":"Иванов", "Highlight": true },' +
	'{"Title":"Петров", "Highlight": false },' +
	'{"Title":"Иванов", "Highlight": false },' +
	'{"Title":"Петров", "Highlight": false }]}';
	obj = JSON.parse(text);
</script>

<table id = "mytab">
</table>

<script type="text/javascript">
	var m = true;
	var Petr = 'Петров';
	var Ivan = 'Иванов';
	newrow = document.all.mytab.insertRow();	
 	for(i=0; i<=3; i++) {
		newcell = newrow.insertCell(i);
		if (obj.employees[i].Title == Petr) {
			newcell.style.backgroundColor="magenta";
			newcell.innerHTML = obj.employees[i].Title;
		}		
		else {
		newcell.innerHTML = obj.employees[i].Title;};;
	}

</script>

</body>
</html>


Как видно в JSON у первого Иванова значение Highlight равно true.
Как учитывая это, сделать первую ячейку таблицы с тенью???

В CSS уже прописал (shadow), а как в Java?

т.е. если писать

if (obj.employees[i].Title == Petr) & (obj.employees[i].Highlight == True)
то чего-то не работает
Ответить с цитированием
  #2 (permalink)  
Старый 02.08.2017, 12:37
Новичок на форуме
Отправить личное сообщение для Navigator Посмотреть профиль Найти все сообщения от Navigator
 
Регистрация: 02.08.2017
Сообщений: 6

И вдогонку интересен вопрос: правильно ли у меня вообще написан сей код?
Ответить с цитированием
  #3 (permalink)  
Старый 02.08.2017, 13:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Navigator
то чего-то не работает
работает если правильно написать
Ответить с цитированием
  #4 (permalink)  
Старый 02.08.2017, 13:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Navigator,
<!DOCTYPE html>
<html>
<head><meta charset="utf-8">
<style>
  body{
    background-color: #FFD700;
  }

  table {
    border-spacing: 20px 20px;
    }
  td, th {
    color: white;
    padding: 17px;
    font-weight: 600;
    background-color: green;
    }

   .shadow {
    box-shadow: 0 0 10px rgba(0,0,0,0.5);
    padding: 10px;
   }

   .magenta  {
     background-color: magenta;
   }

</style>
</head>

<body>

<script>
  var text = '{"employees":[' +
  '{"Title":"Иванов", "Highlight": true },' +
  '{"Title":"Петров", "Highlight": false },' +
  '{"Title":"Иванов", "Highlight": false },' +
  '{"Title":"Петров", "Highlight": false }]}',
  obj = JSON.parse(text);
</script>

<table id = "mytab">
</table>

<script type="text/javascript">
  var Petr = 'Петров';
  var Ivan = 'Иванов';
  var newrow = document.getElementById('mytab').insertRow();
 	for(i=0; i<obj.employees.length; i++) {
    var newcell = newrow.insertCell(i);
    if (obj.employees[i].Title == Petr) newcell.classList.add("magenta");
    if (obj.employees[i].Highlight) newcell.classList.add("shadow");
    newcell.innerHTML = obj.employees[i].Title;
  }

</script>

</body>
</html>

Последний раз редактировалось рони, 02.08.2017 в 13:42.
Ответить с цитированием
  #5 (permalink)  
Старый 02.08.2017, 13:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Navigator
т.е. если писать

if (obj.employees[i].Title == Petr) & (obj.employees[i].Highlight == True)

то чего-то не работает
Так условия не пишутся.
Цитата:
Логическое И (&&)
https://javascript.ru/boolean-operators

Ну и скобки конечно не правильно используются...
Цитата:
if (condition)
https://javascript.ru/if
Ответить с цитированием
  #6 (permalink)  
Старый 02.08.2017, 13:36
Новичок на форуме
Отправить личное сообщение для Navigator Посмотреть профиль Найти все сообщения от Navigator
 
Регистрация: 02.08.2017
Сообщений: 6

рони,
Спасибо, пока тут запостил тему, написал код условие в условии, вот так:

if (obj.employees[i].Title == Petr) {
        	if (obj.employees[i].Highlight == true) 
            {newcell.className = 'shadow';}


Не знаю, правильно или нет, как считаете?
Ответить с цитированием
  #7 (permalink)  
Старый 02.08.2017, 13:37
Новичок на форуме
Отправить личное сообщение для Navigator Посмотреть профиль Найти все сообщения от Navigator
 
Регистрация: 02.08.2017
Сообщений: 6

ksa,
спасибо, учту
Ответить с цитированием
  #8 (permalink)  
Старый 02.08.2017, 13:38
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Navigator,
if (obj.employees[i].Title==Petr && obj.employees[i].Highlight==true){
	newcell.className = 'shadow';
}
Ответить с цитированием
  #9 (permalink)  
Старый 02.08.2017, 13:38
Новичок на форуме
Отправить личное сообщение для Navigator Посмотреть профиль Найти все сообщения от Navigator
 
Регистрация: 02.08.2017
Сообщений: 6

Кстати, хотел бы узнать, а правильно ли код у меня написан?

про JSON узнал только вчера, для примера брал код отсюда:
https://www.w3schools.com/js/js_json.asp

А задача следующая:
из JSON вывести данные в таблицу
Ответить с цитированием
  #10 (permalink)  
Старый 02.08.2017, 13:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Navigator
if (obj.employees[i].Highlight == true)
Это избыточная запись...
Если переменная типа tru|false - достаточно такой записи
if (obj.employees[i].Highlight)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Акардион меню из чекбоксов и списка, как сделать подсветку текущего элемента OliLoi jQuery 0 08.11.2016 08:15
как сделать чтобы в popup окне показывалось картинка? sarik Общие вопросы Javascript 31 15.03.2013 13:12
filter(this,this) как правильно сделать? Smip jQuery 5 23.02.2013 03:07
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
как создать в цикле несколько дочерних элементов одного уровня? DimonCry Общие вопросы Javascript 11 13.01.2011 10:46