Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как сделать несколько условий в цикле (https://javascript.ru/forum/dom-window/69996-kak-sdelat-neskolko-uslovijj-v-cikle.html)

Navigator 02.08.2017 12:35

Как сделать несколько условий в цикле
 
Есть обычный код на 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)
то чего-то не работает

Navigator 02.08.2017 12:37

И вдогонку интересен вопрос: правильно ли у меня вообще написан сей код?

рони 02.08.2017 13:08

Цитата:

Сообщение от Navigator
то чего-то не работает

работает если правильно написать

рони 02.08.2017 13:22

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>

ksa 02.08.2017 13:34

Цитата:

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

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

то чего-то не работает

Так условия не пишутся. :nono:
Цитата:

Логическое И (&&)
https://javascript.ru/boolean-operators

Ну и скобки конечно не правильно используются...
Цитата:

if (condition)

https://javascript.ru/if

Navigator 02.08.2017 13:36

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

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


Не знаю, правильно или нет, как считаете?

Navigator 02.08.2017 13:37

ksa,
спасибо, учту

Nexus 02.08.2017 13:38

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

Navigator 02.08.2017 13:38

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

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

А задача следующая:
из JSON вывести данные в таблицу

ksa 02.08.2017 13:39

Цитата:

Сообщение от Navigator
if (obj.employees[i].Highlight == true)

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


Часовой пояс GMT +3, время: 06:17.