|
Почему так происходит?
Почему так происходит?
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>
|
в первом случае это ошибка в цикле. должно быть так
for (var i=0;i<b1.length-1; i++) |
на счет второго.. вы же в цикле выводите одно и то же значение.. все разумно...
если вы хотите один раз вывести, то выводите за циклом (как то так):
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]);
|
ну и третье и четвертое можно отнести ко 2-му пункту...
|
skrudjmakdak,понятно.Спасибо!
|
//прописывайте 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]);
}
|
Спасибо за ответ.
Я плохой пример примёр с Нохчо.А вот,если так разделяю 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>
|
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]);
}
|
Спасибо большое!Так-то понятно становится,что циклы нужно не везде ставить.
Почему-то не работает?Вроде,так перенёс...И в 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>
|
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. если что спрашивайте. я таким же был))) |
| Часовой пояс GMT +3, время: 01:37. |
|