Вы уверены, что количество элементов в массивах Stroki и Stroki_cod одинаковое?
|
хмм...нет)хотя собственно это мне и нужно)чтобы каждой строке текста сопоставлялась соответствующая ей строка кода)
в общем написал вот такое: function minimum(a,b){ if(a>b){return b;} else{return a;} } var dlina=minimum(Stroki.length,Stroki_cod.length); for (var x=0;x<dlina; x++)........ вроде опера не жалуется) выходит количество строк разное...( ну тогда конечно несуществующие элементы массива объектами не являются... буду дальше думать как пилить одинаково код и текст.спасибо;) только остался вопрос почему ИЕ6 ел и с несовпадающим числом строк)вернее в ИЕ6 оно совпадает я проверил |
Вложений: 5
вот такой код:
<!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=windows-1251" /> <title>Проверка свойств массива</title> <script src="jquery-1.4.2.min.js"></script> </head> <body><PRE><HR color=#cc0033 noShade> бла бла-бла <B>Поб.1 </B> слово текст <B> .</B> <HR color=#cc0033 noShade> 30/08 <B id=r>что-то там</B> <B> хее </B> гг лл <B>авыпрп </B> аывр <B>павпы</B> апрп</PRE> </body> <script type="text/javascript"> $(document).ready(function() { var perenos = /[\r\n\t\v\a]/m; var perenos_html = /[\r||\n||\v]/m; var Stroki = new Array(); var Stroki_cod = new Array(); var i=0; while(1){ $($('pre:contains(Поб.1)')[i]).attr('id','id'); var tekst=$('pre#id').text();//текст блока var cod=$('pre#id').html();//код блока //alert(tekst+"\n-------------\n"+cod); if(!tekst){break;} //делаем из текста блока массив строк var p = 0; while(1) { var Stroka = perenos.exec(tekst); if (Stroka==null){break;} Stroki[p]=tekst.substr(0,perenos.lastIndex); tekst=tekst.substr(perenos.lastIndex+1); if (Stroki[p]=="\r"){continue;} p++; } //делаем из кода блока массив строк var p = 0; while(1) { var Stroka = perenos_html.exec(cod); if (Stroka==null){break;} Stroki_cod[p]=cod.substr(0,perenos_html.lastIndex); cod=cod.substr(perenos_html.lastIndex+1); if(Stroki_cod[p]=='\r'){continue;} if(Stroki_cod[p].length<7){continue;} p++; } alert("Dlina massiva texta: "+Stroki.length+"\n ------------------------------------- \n Coda: "+Stroki_cod.length); $($('pre:contains(Поб)')[i]).removeAttr('id'); i++; } }); </script> </html> вот такие результаты:ie6,ie8,opera10,firefox3,chro me5. кто не верит пусть проверит - браузеры что ли сами определяют каким символом делать перенос строки?О_о |
Ваш код, как бы это помягче сказать, говно. Он ещё не раз где-нибудь взорвётся.
|
Цитата:
но не плохо было бы прилагать советы по исправлению;)какие-то функции мб другие посмотреть или вообще другие идеи как сделать его менее взрывоопасным.вся задница в использовании регулярок. но если б я знал как это сделать по-умному - мб и получилось бы не такое уж и говно |
Что сделать-то?
|
строке текста сопоставить соответствующую ей строку кода
|
Часовой пояс GMT +3, время: 10:37. |