Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.04.2013, 09:13
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Почему так происходит?
Почему так происходит?

document.write(b1[i][1]);//НохчоФК Оргаanzor95undefined-откуда взялся undefined?

document.write(b1[0][1]);//НохчоНохчоНохчоНохчо-почему Нохчо повторяется 4 раза,а не один?

document.write(b1[1][1]);//ФК ОргаФК ОргаФК Орга-почему ФК Орга-3 раза,а не один?

document.write(b1[2][1]);//anzor95anzor95-почему anzor95-2 раза,а не один?

Подскажите пожалуйста или ссылку скиньте,где почитать.



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>

<body>

<p style='display:none'>
• Самашки - Вайнах 1:4
Берд - Лидер 2:3
ЧГУ - Низам 1:2
Родник - Авангард 2:1
Тайфун - Динамо 0:2
Казбек-Горец 0:2
Спартак - Мартан 2:1
ЧГПИ - Даймохк 1:1
Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 

• Самашки-Вайнах 1:3
Берд-Лидер 0:2
ЧГУ-Низам 2:2
Родник-Авангард 1:2
Тайфун-Динамо 1:3
Казбек-Горец 0:4
Спартак-Мартан 0:0
ЧГПИ-Даймохк 1:5
Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 

• Самашки-Вайнах 1-1
Берд-Лидер 1-3
ЧГУ-Низам 1-2
Родник-Авангард 2-3
Тайфун-Динамо 1-3
Казбек-Горец 1-4
Спартак-Мартан 2-1
ЧГПИ-Даймохк 1-3
Марта-Сунжа 2-1
05.11.12 22:58 anzor95 Правка ip inf 


</p>
<script>

a1=document.getElementsByTagName('p')[0].innerHTML; 

	
	b1=a1.split(/\sПравка\sip\sinf/); 
	for (var i=0;i<b1.length-1; i++) {
	
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
	
          // document.write(b1[i][1]);//НохчоФК Оргаanzor95undefined
	document.write(b1[0][1]);//НохчоНохчоНохчоНохчо
	//document.write(b1[1][1]);//ФК ОргаФК ОргаФК Орга
         //  document.write(b1[2][1]);//anzor95anzor95
}
  

</script>
</body>
</html>

Последний раз редактировалось dima***, 17.04.2013 в 14:26.
Ответить с цитированием
  #2 (permalink)  
Старый 17.04.2013, 10:46
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

в первом случае это ошибка в цикле. должно быть так
for (var i=0;i<b1.length-1; i++)
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2013, 10:50
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

на счет второго.. вы же в цикле выводите одно и то же значение.. все разумно...
если вы хотите один раз вывести, то выводите за циклом (как то так):

var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);

console.log(b1[0][1]);
Ответить с цитированием
  #4 (permalink)  
Старый 17.04.2013, 10:51
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

ну и третье и четвертое можно отнести ко 2-му пункту...
Ответить с цитированием
  #5 (permalink)  
Старый 17.04.2013, 19:45
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

skrudjmakdak,понятно.Спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 18.04.2013, 09:43
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

//прописывайте var. это говорит о инциализации переменной (первый раз когда используйте переменную). в данной проге ошибке не выдает, а вообще может.. так что не забывайте!!
//почитайте литературу про переменные и инициализацию

var p;
var a1 = document.getElementsByTagName('p')[0].innerHTML; 
var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	{
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
	console.log(b1[i][1]);
	//смотрите что хранится в b1[i][1], для лучшего понимания запишите в отдельную переменную
	p = b1[i][1];
	// при первом вхождении цикла i = 0. p = Нохчо
	// при втором вхождении цикла i = 1. p = ФК Орга
	// при третьем вхождении цикла i = 2. p = anzor95
	p = p.split(/\n/); //при первом вхождении цикла i = 0. p = Нохчо
	//вы пытайтесь разделить Нохчо. но внем нет \n поэтому вернет массив из одного элемента p[0] = 'Нохчо'; т.е. он его не разбил
	for (var k =0; k < p.length - 1; k++)
		console.log(p[k]);
	}
Ответить с цитированием
  #7 (permalink)  
Старый 18.04.2013, 14:23
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Спасибо за ответ.
Я плохой пример примёр с Нохчо.А вот,если так разделяю b1[i][0]=b1[i][0].split(/\n/);
for (var k =0;k<b1[i][0].length-1; k++) {
document.write(b1[1][0][1]+'<br>');получаются одни undefined вначале.Само значение b1[1][0][1] чему равно???

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>

<body>

<p style='display:none'>
• Самашки - Вайнах 1:4
Берд - Лидер 2:3
ЧГУ - Низам 1:2
Родник - Авангард 2:1
Тайфун - Динамо 0:2
Казбек-Горец 0:2
Спартак - Мартан 2:1
ЧГПИ - Даймохк 1:1
Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 

• Самашки-Вайнах 1:3
Берд-Лидер 0:2
ЧГУ-Низам 2:2
Родник-Авангард 1:2
Тайфун-Динамо 1:3
Казбек-Горец 0:4
Спартак-Мартан 0:0
ЧГПИ-Даймохк 1:5
Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 

• Самашки-Вайнах 1-1
Берд-Лидер 1-3
ЧГУ-Низам 1-2
Родник-Авангард 2-3
Тайфун-Динамо 1-3
Казбек-Горец 1-4
Спартак-Мартан 2-1
ЧГПИ-Даймохк 1-3
Марта-Сунжа 2-1
05.11.12 22:58 anzor95 Правка ip inf 


</p>
<script>

 var a1=document.getElementsByTagName('p')[0].innerHTML; 
a1= a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
	var b1=a1.split(/\sПравка\sip\sinf/); 
	for (var i=0;i<b1.length-1; i++) {
	
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
	
          // document.write(b1[i][1]);//НохчоФК Оргаanzor95
	//document.write(b1[0][1]);//НохчоНохчоНохчо
	//document.write(b1[1][1]);//ФК ОргаФК Орга
         //  document.write(b1[2][1]);//anzor95

b1[i][0]=b1[i][0].split(/\n/);
for (var k =0;k<b1[i][0].length-1; k++) {
document.write(b1[1][0][1]+'<br>');//undefined
                                                  undefined
                                                  undefined
                                                  undefined
                                                  undefined
                                                  undefined
                                                  undefined
                                                  undefined
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2

}}
  

</script>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 18.04.2013, 14:46
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

undefined - это когда обращайтесь к тому чего нет. обращение к не существующему объекту, переменной..
все дело в этой строчке: document.write(b1[1][0][1]+'<br>');
должно быть: b1[i][0][1], т.е. при первом цикле этого (b1[1][0][1]) элемента массива еще нет, т.к. i еще равен нулю, а вы обращайтесь уже к еденице.
при втором подходе уже существует этот элемент (b1[1][0][1]) т.к. i = 1 и обращение идет к 1 элементу массива
ну и при третьем подходе также есть элемент массива b1[1][0][1]



вот посмотрите, я немного исправил:

var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	{
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/); 
		//i = 0 ["• Самашки - Вайнах 1:4↵Берд - Лидер 2:3↵ЧГУ - Низа… Мартан 2:1↵ЧГПИ - Даймохк 1:1↵Марта - Сунжа 2:1 ", "Нохчо"]
		//i = 1 ["• Самашки-Вайнах 1:3↵Берд-Лидер 0:2↵ЧГУ-Низам 2:2↵…ртак-Мартан 0:0↵ЧГПИ-Даймохк 1:5↵Марта-Сунжа 1:2 ", "ФК Орга"]
		//i = 2 ["• Самашки-Вайнах 1-1↵Берд-Лидер 1-3↵ЧГУ-Низам 1-2↵…ртак-Мартан 2-1↵ЧГПИ-Даймохк 1-3↵Марта-Сунжа 2-1↵", "anzor95"]
	b1[i][0]=b1[i][0].split(/\n/);
	/*
	i = 0, b1[i][0]=
	0: "• Самашки - Вайнах 1:4"
	1: "Берд - Лидер 2:3"
	2: "ЧГУ - Низам 1:2"
	3: "Родник - Авангард 2:1"
	4: "Тайфун - Динамо 0:2"
	5: "Казбек-Горец 0:2"
	6: "Спартак - Мартан 2:1"
	7: "ЧГПИ - Даймохк 1:1"
	8: "Марта - Сунжа 2:1 "
	
	i = 1, b1[i][0]=
	0: "• Самашки-Вайнах 1:3"
	1: "Берд-Лидер 0:2"
	2: "ЧГУ-Низам 2:2"
	3: "Родник-Авангард 1:2"
	4: "Тайфун-Динамо 1:3"
	5: "Казбек-Горец 0:4"
	6: "Спартак-Мартан 0:0"
	7: "ЧГПИ-Даймохк 1:5"
	8: "Марта-Сунжа 1:2 "
	...
	*/
	console.log('i = ' + i + '  ----------------');
	for (var k =0; k < b1[i][0].length - 1; k++)
		console.log(b1[i][0][k]);
	}

Последний раз редактировалось skrudjmakdak, 18.04.2013 в 14:50.
Ответить с цитированием
  #9 (permalink)  
Старый 18.04.2013, 19:43
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Спасибо большое!Так-то понятно становится,что циклы нужно не везде ставить.

Почему-то не работает?Вроде,так перенёс...И в Adobe Dreamweaver не работает...
skrudjmakdak-помогите допонять,пожалуйста.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Документ без названия</title>
	</head>
	
            <body>
	<p style='display:none'>
	• Самашки - Вайнах 1:4
	Берд - Лидер 2:3
	ЧГУ - Низам 1:2
	Родник - Авангард 2:1
	Тайфун - Динамо 0:2
	Казбек-Горец 0:2
	Спартак - Мартан 2:1
	ЧГПИ - Даймохк 1:1
	Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 
	 
	• Самашки-Вайнах 1:3
	Берд-Лидер 0:2
	ЧГУ-Низам 2:2
	Родник-Авангард 1:2
	Тайфун-Динамо 1:3
           Казбек-Горец 0:4
	Спартак-Мартан 0:0
	ЧГПИ-Даймохк 1:5
           Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 
	 
	• Самашки-Вайнах 1-1
	Берд-Лидер 1-3
	ЧГУ-Низам 1-2
	Родник-Авангард 2-3
	Тайфун-Динамо 1-3
	Казбек-Горец 1-4
	Спартак-Мартан 2-1
	ЧГПИ-Даймохк 1-3
	Марта-Сунжа 2-1
	05.11.12 22:58 anzor95 Правка ip inf 
	 
	</p>
	
<script>
    var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	{
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/); 
		//i = 0 ["• Самашки - Вайнах 1:4↵Берд - Лидер 2:3↵ЧГУ - Низа… Мартан 2:1↵ЧГПИ - Даймохк 1:1↵Марта
- Сунжа 2:1 ", "Нохчо"]
		//i = 1 ["• Самашки-Вайнах 1:3↵Берд-Лидер 0:2↵ЧГУ-Низам 2:2↵…ртак-Мартан 0:0↵ЧГПИ-Даймохк 1:5↵Марта-Сунжа 1:2 ", "ФК Орга"]
		//i = 2 ["• Самашки-Вайнах 1-1↵Берд-Лидер 1-3↵ЧГУ-Низам 1-2↵…ртак-Мартан 2-1↵ЧГПИ-Даймохк 1-3↵Марта-Сунжа 2-1↵", "anzor95"]
	b1[i][0]=b1[i][0].split(/\n/);
	/*
	i = 0, b1[i][0]=
	0: "• Самашки - Вайнах 1:4"
	1: "Берд - Лидер 2:3"
	2: "ЧГУ - Низам 1:2"
	3: "Родник - Авангард 2:1"
	4: "Тайфун - Динамо 0:2"
	5: "Казбек-Горец 0:2"
	6: "Спартак - Мартан 2:1"
	7: "ЧГПИ - Даймохк 1:1"
	8: "Марта - Сунжа 2:1 "
	
	i = 1, b1[i][0]=
	0: "• Самашки-Вайнах 1:3"
	1: "Берд-Лидер 0:2"
	2: "ЧГУ-Низам 2:2"
	3: "Родник-Авангард 1:2"
	4: "Тайфун-Динамо 1:3"
	5: "Казбек-Горец 0:4"
	6: "Спартак-Мартан 0:0"
	7: "ЧГПИ-Даймохк 1:5"
	8: "Марта-Сунжа 1:2 "
	...
	*/
	console.log('i = ' + i + '  ----------------');
	for (var k =0; k < b1[i][0].length - 1; k++)
		console.log(b1[i][0][k]);
	} 
</script>
</body>
</html>

Последний раз редактировалось dima***, 18.04.2013 в 20:07.
Ответить с цитированием
  #10 (permalink)  
Старый 18.04.2013, 22:38
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

1. я тоже когда то пытался работать через Adobe Dreamweaver. потом понял что это фигня.. поэтому и вам советую.. выкиньте (может и привыкли, но все же..)

2. Лучше использовать netbeans или notepad. первый для серьезных проектов, а нотепад для "домашних". на работе мы пишем в нетбинсе.. а дома мне за глаза нотепада хватает... (это так, лично мое мнение.. выбор конечно же завами)

3. Выбор самого браузера (тоже немаловажно).. мне нравится хром (опять таки мое личное мнение). в хроме есть встроенный фаербаг. вызывается f12.. там есть консоль (вкладка console), куда все можно выводить для отладки.. для вывода используется console.log(здесь пишем имя переменной); также при возникновении ошибки в консоль выводится сообщение об ошибки и НОМЕР СТРОЧКИ где эта ошибка произошла.. таким образом можно найти причину этой ошибки, щелкнув по самой ошибки..

ну собсенно сам код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Документ без названия</title>
	</head>
	
            <body>
	<p style='display:none'>
	• Самашки - Вайнах 1:4
	Берд - Лидер 2:3
	ЧГУ - Низам 1:2
	Родник - Авангард 2:1
	Тайфун - Динамо 0:2
	Казбек-Горец 0:2
	Спартак - Мартан 2:1
	ЧГПИ - Даймохк 1:1
	Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 
	 
	• Самашки-Вайнах 1:3
	Берд-Лидер 0:2
	ЧГУ-Низам 2:2
	Родник-Авангард 1:2
	Тайфун-Динамо 1:3
           Казбек-Горец 0:4
	Спартак-Мартан 0:0
	ЧГПИ-Даймохк 1:5
           Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 
	 
	• Самашки-Вайнах 1-1
	Берд-Лидер 1-3
	ЧГУ-Низам 1-2
	Родник-Авангард 2-3
	Тайфун-Динамо 1-3
	Казбек-Горец 1-4
	Спартак-Мартан 2-1
	ЧГПИ-Даймохк 1-3
	Марта-Сунжа 2-1
	05.11.12 22:58 anzor95 Правка ip inf 
	 
	</p>
	
<script>
    var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	{
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/); 
	b1[i][0]=b1[i][0].split(/\n/);
	
	console.log('i = ' + i + '  ----------------');
	for (var k =0; k < b1[i][0].length - 1; k++)
		console.log(b1[i][0][k]);
	} 
</script>
</body>
</html>



p.s. если что спрашивайте. я таким же был)))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почему function'ы работают только с приминением setTimeout TommyTunec Events/DOM/Window 2 22.01.2013 11:48
Почему неразрывный пробел заменяется на & nbsp; danik.js Events/DOM/Window 4 09.01.2013 00:44
Почему так происходит? noname1990 Общие вопросы Javascript 2 23.11.2012 00:16
Свойства объекта, методы и this. Почему свойство вызывается с () ? jsuse Общие вопросы Javascript 2 04.11.2011 20:39
Prototype. Одноблочное определение псевдокласса. Литеральная форма не робит. Почему? GuardCat Общие вопросы Javascript 6 03.10.2011 13:46