Strict Standards: Resource ID#33 used as offset, casting to integer (33) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Странности с name и id
ТвойWeb » WebMaster класс » JavaScript » Странности с name и id

Страниц (3): [1] 2 3 »
 

1. Systemnik - 30 Марта, 2008 - 04:21:22 - перейти к сообщению
Вот недавно приобрел справочник по яваскрипт и прочитал там вот такой код

CODE:
<html>
<head>
<title>
Динамическая подгрузка текста
</title>
</head>
<body>
<form>
<input type=text id=txtvalue><br>
<input type=button onClick="start()" value="Подгрузить">
</form>
<p id="parag"></p>
<script>
function ajax(text) {
parag.innerText = text;
}
function start() {
var peremm = document.getElementById("txtvalue").value;
ajax(peremm);
}
</script>
</body>
</html>

Так вот он мне показался каким то синтаксически не верным, хотя он работает.
Вот так я его исправил:

CODE:
<html>
<head>
<title>
Динамическая подгрузка текста
</title>
</head>
<body>
<form>
<input type=text id=txtvalue><br>
<input type=button onClick="start()" value="Подгрузить">
</form>
<p name="parag"></p>
<script>
function ajax(text) {
document.parag.innerText = text;
}
function start() {
var peremm = document.getElementById("txtvalue").value;
ajax(peremm);
}
</script>
</body>
</html>

но предложенный мной вариант не фурычит.. почему?? Ведь вроде все верно... Растерялся
2. Furax - 30 Марта, 2008 - 09:22:20 - перейти к сообщению
Systemnik
По document.ИмяОбъекта можно обратиться только к форме. Тег абзаца не имеет аттрибута name. Предложенный автором скрипт мне тоже не нравится - обращение напрямую по id введено, по моему, в IE5 (или 4?..). Впоследствии его стали поддерживать почти все браузеры, но это способ недокументированный и не всегда и не везде работает.

Я бы переписал так:
CODE:
<html>
<head>
<title>
Динамическая подгрузка текста
</title>
</head>
<body>
<form name="myForm">
<input type="text" id="myText"><br>
<input type="button" onClick="start()" value="Подгрузить">
</form>
<p id="parag"></p>
<script>
function ajax(text) {
document.getElementById('parag').innerText = text;
}
function start() {
var peremm = document.myForm.myText.value;
ajax(peremm);
}
</script>
</body>
</html>


Что ещё плохо? Использование innerText. Достаточно дурной тон. innerHTML не намного лучше, но он всё же более распространён.
3. Systemnik - 30 Марта, 2008 - 09:51:40 - перейти к сообщению
Furax пишет:
Что ещё плохо? Использование innerText. Достаточно дурной тон. innerHTML не намного лучше, но он всё же более распространён.

А что тогда испольховать?? write ?? Растерялся
4. Furax - 30 Марта, 2008 - 12:05:21 - перейти к сообщению
Systemnik
document.write() - это идеальный вариант, но он применим только во время загрузки документа. Вообще же в Web 2.0 хороший тон - это использовать объектную модель DOM2.
5. Systemnik - 31 Марта, 2008 - 03:21:45 - перейти к сообщению
А что за DOM можно поподробнее каими операторами в данном слуае пользоватся.. Растерялся
6. Furax - 31 Марта, 2008 - 04:15:30 - перейти к сообщению
Systemnik
Document Object Model.

Не оператором. Почитай у того же Гудмана, там это хорошо описано.

innerHTML, конечно, удобнее, но, возможно, от него когда-нибудь откажутся... Не за горами переход на JavaScript 2.0, который не будет обратно-совместим с 1.х.
7. Systemnik - 31 Марта, 2008 - 04:37:42 - перейти к сообщению
И так вот какая проблема.. правда не по этой теме но вот вопрос вот даю код

CODE:
<html>
<head>
<title>
Скрытие и показывание текста
</title>
</head>
<body>
<div id="hide">
gf
</div>
<div id="hide">
gfsasa
</div>
<input type=button onClick="getElementById('hide').style.display = '';" value="Показать">
<input type=button onClick="getElementById('hide').style.display = 'none';" value="Скрыть">
<input type=button onClick="getElementById('hide').style.display = '';" value="Показать">
<input type=button onClick="getElementById('hide').style.display = 'none';" value="Скрыть">
</body>
</html>


я пишу спойлер для ExBB Fm 1.0 так вот мне если в одном документе несоклько раз употредляется бб код code в таком случае если я тупо ривяжу див к текству и прикреплю кнопки они будут потсоянно все открывать и закрывать текст (бб код) 1
как сделать что бы каждая кнопка могла знать какой див ей принадлежит.
ведь разные имена я задать несмогу.. Растерялся
8. Furax - 31 Марта, 2008 - 07:07:31 - перейти к сообщению
Systemnik
Почему не сможешь? Обычно имена в таких случаях кончаются номером...
9. Systemnik - 31 Марта, 2008 - 07:12:08 - перейти к сообщению
Так.. Фуракс.. давай то будет моя контрольная.. работа.. ты учитель.. я попробую..
я так понимаю тут нужно поработать с циклом?? Все пошел делать... Подмигивание
10. Systemnik - 31 Марта, 2008 - 07:59:22 - перейти к сообщению
Вот что я написал к сожадлению какая то ошибка связаная с генерацией страницы...
к томуже почему то length возврашает undefined почему понять не могу ну что смог написал поправь пожалуйста в чем ошибка...

CODE:
<html>
<head>
<title>
Скрытие и показывание текста
</title>
</head>
<body>
<div id="code">
divs
</div>
<div id="code">
divs
</div>
<script language="JavaScript">
alert(document.getElementById("code").length);
for(var i=0; i>document.getElementById("code").length; i++) {
document.write(/'
<div id="hide["+i+"]">
gf
</div>
<input type=button onClick="getElementById('hide['+i+']').style.display = '';" value="Показать">
<input type=button onClick="getElementById('hide['+i+']').style.display = 'none';" value="Скрыть">
'/);
}
</script>
</body>
</html>

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.026]     [ Gzipped ]