Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает IndexOf (https://javascript.ru/forum/misc/2708-ne-rabotaet-indexof.html)

3042 03.02.2009 08:04

Не работает IndexOf
 
У меня IE 6.0.
Пишу:
s="123"
a=s.IndexOf("2")
Браузер пишет, что метод или свойство объекта не поддержваются. Почему так?

Kolyaj 03.02.2009 08:46

Потому что метод или свойство объекта не поддерживается, как это ни странно. В JavaScript все наименования в camelStyle, т.е. первая буква всегда маленькая.

3042 03.02.2009 12:13

Спасибо!

Jorixxx 31.08.2010 13:02

indexOf не пашет по той же причине, проверял в IE8, opera, FF
for(var x = 0;x<Stroki.length;x++){
   var Search = Stroki[x].substr(0,4);
   //alert(Search);
   var s=Stroki_cod[x].indexOf(Search);
...}


вот что пишет опера:
Uncaught exception: TypeError: Cannot convert 'Stroki_cod[x]' to object

в ие6 работает прекрасно:blink:

Kolyaj 31.08.2010 13:04

Цитата:

Сообщение от Jorixxx
indexOf не пашет по той же причине

По какой той же?

Jorixxx 31.08.2010 13:08

Цитата:

Сообщение от 3042 (Сообщение 11888)
У меня IE 6.0.
Браузер пишет, что метод или свойство объекта не поддержваются. Почему так?

ну а в моем случае браузер не считает строку объектом.
в общем-то одно и то же
причем проблема не в методе, а конкретно в том, что ни один браузер не признает элемент массива объектом.
не пашет так же и search
Но по идее строка это же экземпляр класса String=>объект...со всеми методами и свойствами

Kolyaj 31.08.2010 13:19

Цитата:

Сообщение от Jorixxx
ни один браузер не признает элемент массива объектом.

Значит у вас в массиве не строки.

Jorixxx 31.08.2010 13:26

//делаем из текста блока массив строк
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++;
}

и какого типа содержимое в элементах массива Stroki получится в результате?
по-моему все указывает на то, что там строка)
з.ы. для Stroki_cod функция такая же

Kolyaj 31.08.2010 13:32

Приведите минимальный неработающий скрипт, а не куски.

Jorixxx 31.08.2010 14:47

ну вот) выдрал тот самый кусок.Полный текст - и хтмл и скрипт. юзаю jQuery
В ие6 срабатывает как по маслу - опера шлет в даль

<!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++;
}

//функция сверки строк
for (var x=0;x<Stroki.length; x++)
	{
		var Search = Stroki[x].substr(0,4);
		var s=Stroki_cod[x].indexOf(Search, 0);
		if (s<0){}
		else {alert(Stroki[x]+"\n ------------------------------------- \n"+Stroki_cod[x]);}
	}

$($('pre:contains(Поб)')[i]).removeAttr('id');
i++;
}
});

</script>
</html>


Часовой пояс GMT +3, время: 17:36.