|
Почему так происходит?
Почему так происходит?
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, время: 20:56. |
|