Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.08.2017, 15:25
Интересующийся
Отправить личное сообщение для Zmicer Посмотреть профиль Найти все сообщения от Zmicer
 
Регистрация: 24.02.2017
Сообщений: 20

Не работает счетчик :(
Доброго времени суток! Хочу спросить, если кто нибудь в курсе - написал функцию (несколько громоздкую, но не в этом суть), которая должна по нажатию на кнопку делать <p> красными, по второму - черными. Однако не могу понять, почему этого не происходит, хотя я задаю глобальную переменную count - по идее все должно работать как часы
function selectAllp() {
	if (count === null) var count =1;	            
	if (count%2 !== 0){var pList = document.getElementsByTagName("p");
           	for (var i = 0; i < pList.length; i++) {
                pList[i].setAttribute("style", "color:red");
				            }  
			count=2;
			return				
		}
		
	else if (count%2 == 0){var pList = 
               document.getElementsByTagName("p");
           	for (var i = 0; i < pList.length; i++) {
             pList[i].setAttribute("style", "color:black");
		 } 			 
	}
		   count=1;	  
   }
.

Спасибо за ответ!
Ответить с цитированием
  #2 (permalink)  
Старый 11.08.2017, 15:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от Zmicer
хотя я задаю глобальную переменную count - по идее все должно работать как часы
Если не работает - значит не должно.
Ответить с цитированием
  #3 (permalink)  
Старый 11.08.2017, 15:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от Zmicer
должна по нажатию на кнопку делать <p> красными, по второму - черными
Ты полный пример сделай дабы посмотреть все сразу...
Ответить с цитированием
  #4 (permalink)  
Старый 11.08.2017, 15:42
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от Zmicer
хотя я задаю глобальную переменную count
Какая же она глобальная, если у тебя
Сообщение от Zmicer
if (count === null) *!*var count =1*/!*;
Ответить с цитированием
  #5 (permalink)  
Старый 11.08.2017, 15:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от Zmicer
pList[i].setAttribute("style", "color:red")
Меняй на
pList[i].style.color='red';
Ответить с цитированием
  #6 (permalink)  
Старый 11.08.2017, 15:47
Интересующийся
Отправить личное сообщение для Zmicer Посмотреть профиль Найти все сообщения от Zmicer
 
Регистрация: 24.02.2017
Сообщений: 20

ну дальше то идет - count=2 (т.е. глобальная). Даю весь код:
<html>
<head>
   <title>Count</title>
</head>

<body>

<script type="text/javascript">

function selectAllp() {
			if (count === null) var count =1;			      
			if (count%2 !== 0){var pList = document.getElementsByTagName("p");
           	for (var i = 0; i < pList.length; i++) {
                pList[i].setAttribute("style", "color:red");
			}  
			count=2;
			return				
		}
		    else if (count%2 == 0){var pList = document.getElementsByTagName("p");
           	for (var i = 0; i < pList.length; i++) {
             pList[i].setAttribute("style", "color:black");
				 } 			 
		}
		   count=1;	   		   
		   }
       
</script>

<p>Привет, медвед0!</p>
<p>Привет, медвед1!</p>
<p>Привет, медвед2!</p>
<p>Привет, медвед3!</p>

<input type="button" onclick="selectAllp()" style="width: 210px;" value="Выбрать все параграфы" />

</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 11.08.2017, 15:54
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от Zmicer
if (count === null) var count =1; 
почему-то вспомнилось, как на собеседовании меня спросили, что-то вроде: как тут будет работать?
if (...) {
  function f() { return true; } 
} else {
  function f() { return false; } 
}
...


не люблю такие вопросы - они унылы...
Ответить с цитированием
  #8 (permalink)  
Старый 11.08.2017, 15:55
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

var count =1; поставь перед функцией
function selectAllp() {
Ответить с цитированием
  #9 (permalink)  
Старый 11.08.2017, 15:58
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

var count =1 / у тебя каждый раз заново объявляется и ей присваивается значение 1
Ответить с цитированием
  #10 (permalink)  
Старый 11.08.2017, 15:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от Zmicer
Даю весь код
И я...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
var count=false;	   		   
function selectAllp() {
	var clr=(count)? 'black': 'red';
	var pList = document.getElementsByTagName("p");
	for (var i = 0; i < pList.length; i++) {
		pList[i].style.color=clr;
	}  
	count=!count;
}
</script>
</head>
<body>
<p>Привет, медвед0!</p>
<p>Привет, медвед1!</p>
<p>Привет, медвед2!</p>
<p>Привет, медвед3!</p>
<input type="button" onclick="selectAllp()" style="width: 210px;" value="Выбрать все параграфы" />
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
ajax запросы, работает на одних компах и не работает на других vtornik23 AJAX и COMET 2 22.03.2010 18:22
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11