Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Ошибка "Expected token: '}' " (https://javascript.ru/forum/events/4544-oshibka-expected-token-%27%7D%27.html)

pestO 01.08.2009 09:42

Ошибка "Expected token: '}' "
 
Есть код, который ищет 2ую таблицу на странице и во всех строках этой таблицы выполняеть поиск по 3й ячейке.

var tableElement = document.documentElement.getElementsByTagName("table")[1];
if (tableElement!=0)
{
var trElement=tableElement.getElementsByTagName("tr");
for (var i = 0; i < trElement.length; i++)
{
var td=trElement[i].getElementsByTagName("td");
if(td[3].nodeValue=="Охотник")
{
td[3].nodeValue="НЕохотник";
var hhrElement=trElement.getElementsByTagName("a")[0];
if(hhrElement!=0) hhrElement.nodeValue="aaaaa";
};
};
};


выбает ошибку
"JavaScript
User JS compilation
Syntax error D:\Дистрибутивы\Internet\Opera\hero.js : line 33 of User JS script :
Expected token: '}'
if(hhrElement!=0) hhrElement.n"
Причем именно "if(hhrElement!=0) hhrElement.n"!

Скобки расставлены вроде верно...

Тестируется в Opera 9.64 (Seven RC2).

Какие будет советы и предложения ?)

pestO 01.08.2009 11:02

"испрашил" на
var tableElement = document.documentElement.getElementsByTagName("table")[1];
if (tableElement!=0)
var trElement=tableElement.getElementsByTagName("tr");


Ошибка
"User Javascript thread
Error:
name: TypeError
message: Statement on line 12: Cannot convert undefined or null to Object
Backtrace:
Line 12 of User JS script
var trElement=tableElement.getElementsBy
stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'"

ничего не понимаю... :cray:

x-yuri 01.08.2009 12:18

if( tableElement )

p.s. отступы не просто так придумали ;)

pestO 01.08.2009 12:23

сделал более "читабельный код" с проверкой "if( tableElement )"
for(var tableElement in document.documentElement.getElementsByTagName("table"))
if(tableElement)
	for (var trElement in tableElement.getElementsByTagName("tr"))
	if(trElement)
		for(var td in trElement.getElementsByTagName("td"))
		if(td)
		if(td.nodeValue=="Охотник")
		td.nodeValue="Охотник о_О";

Не помогло =(

"message: Statement on line 13: Type mismatch (usually non-object value supplied where object required)
Backtrace:
Line 13 of User JS script
for (var trElement in tableElement.getElementsByTagName("tr"))
stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'
"
Все 3 ошибки искал в гугле ничего путного не нашел.

pestO 01.08.2009 15:49

var nodeList =  document.getElementsByTagName("TABLE");
alert(nodeList.length);


На странице ровно три таблицы выпадает алерт с "0"!!!
:blink:

Как это вообще возможно?

x-yuri 02.08.2009 05:43

Цитата:

Сообщение от pestO
Не помогло =(

если не заметил, ошибка уже в другом месте. Научись понимать сообщения об ошибках

Цитата:

Сообщение от pestO
На странице ровно три таблицы выпадает алерт с "0"!!!

какой DOCTYPE?

Цитата:

Сообщение от pestO
Все 3 ошибки искал в гугле ничего путного не нашел.

это ошибки в твоем коде. Твой код уже настолько известен?

pestO 02.08.2009 12:55

Цитата:

Сообщение от x-yuri
если не заметил, ошибка уже в другом месте. Научись понимать сообщения об ошибках

пытаюсь научиться - не бейте сильно ногами))))

Цитата:

Сообщение от x-yuri
какой DOCTYPE?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Это что-то дает?)

Цитата:

Сообщение от x-yuri
p.s. отступы не просто так придумали

То есть нужно делать отступы в if(отступ переменная отступы) ?
А как же то что javascript ужаляет все пробелы и табы при работе?...

Kolyaj 02.08.2009 13:05

Цитата:

Сообщение от pestO
А как же то что javascript ужаляет все пробелы и табы при работе?...

Во-первых, не удаляет, а игнорирует. Во-вторых, это не значит, что их не нужно ставить.

pestO 02.08.2009 13:08

хехе, да привыкшему к С++ сложно отвыкать)
Спасибо, а где можно почитать синтаксис свзанный с "пробелами"?
Если расскажут как побороться с "отсутвием" таблиц в
document.getElementsByTagName("table")
я уж дальше сам домучаю свой великий скрипт))))

Kolyaj 02.08.2009 13:11

Цитата:

Сообщение от pestO
Спасибо, а где можно почитать синтаксис свзанный с "пробелами"?

Нет там никакого синтаксиса, они же игнорируются.

Цитата:

Сообщение от pestO
Если расскажут как побороться с "отсутвием" таблиц

Скрипт вызывается после появления таблиц на странице?

На плюсах тоже без отступов пишете?


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