Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Взаимодействие с CSS (https://javascript.ru/forum/misc/1119-vzaimodejjstvie-s-css.html)

Matigor 25.03.2008 14:38

Взаимодействие с CSS
 
Вопрос общего рода. Допустим имеем такое определение "на лету":
<p id=aaa style="color: red; text-indent: 4%;">текст</p>
Могу ли я из javascript изменить цвет (по стилю) абзаца?
Я подсмотрел - есть функция document.styleSheets[0].addRule, но она работает для более глобального определния стиля через <STYLE> или <LINK>. Более того, нашел не сразу - может кто-то посмеется, но мое изучение javascript пошло от 1stPage и HomeSite (в их древе объектов не нашлось таких свойств document, нашел только в справочном рук-ве).
И то - если бы не видел один пример, то и вовсе не нашел бы.

Р.Ы. Кстати, видел полезную функцию document.getElementbyID, но для меня это открытие. Опять же в Хомяке и 1-Пайдже никак не освещена. Быть может, она появилась только в версии 1.5.? С другой стороны ведь происходит обращение в HTML_структуре?

Kolyaj 25.03.2008 15:18

Для изменения стилей нужно менять свойство style объекта:
document.getElementById('aaa').style.color = '#000';
Если в имени свойства есть дефис, то
document.getElementById('aaa').style.textIndend = '10%';


Цитата:

Сообщение от Matigor
Кстати, видел полезную функцию document.getElementbyID, но для меня это открытие.

У вас впереди еще очень много открытий :)

Matigor 25.03.2008 20:04

Мда... вот что значит передовериться хелпу браузеров или старой спецификации.

Тогда еще один вопрос. Могу ли я скриптом поменять содержимое параграфа, т.е. внутренний текст тега <p>текст</p>?

Андрей Параничев 25.03.2008 21:28

Да, через свойство innerHTML, например вот так:
<p id="myText">текст</p>

<script>
document.getElementById("myText").innerHTML = 'текст 2';
</script>

Dmitry A. Soshnikov 25.03.2008 21:30

Matigor,

document.getElementById('aaa').innerHTML = 'новый текст';


P.S.: гыы =) пока писал, Андрей Параничев уже опередил =)

Matigor 08.04.2008 19:04

Господа, спасибо за подсказ
Цитата:

document.getElementById("myText").innerHTML = 'текст 2';
Но меня интересуют два вопроса:
1) где в документации имеется этот getElementById - понимаете, в тех рукодельных учебничках по javascript они никак не описываются... у меня от этого чувство, что почва уходит из-под ног... специально что ли они это не поместили в обычный хелп?
2) между тем смотрел вчера на компе, где-то увидел любопытную штуку (а где точно опять уже не найду)..
короче.
Традиционно считается, что JS может менять только внутри имеющихся блоков, но никаких новых элемнетво в страницу добавлять не может.
Но вот нашел пример, когда такое происходило - не помню как называется функция.
Итак... как написать такое:
есть кнопочка, при нажатии на нее выполняется JS-функция, она дописывает фрагмент кода в начало и в конец документа (например, еще один параграф), плюс к этому добавляет его куда-то в середину, скажем, после 5-го рисунка

tenshi 08.04.2008 19:54

выкинь книжки десятилетней давности и купи любую новую.

tenshi 08.04.2008 19:55

http://www.google.com/search?ie=UTF-...E+jav ascript

Matigor 08.04.2008 20:02

Да, да, ... вот гугл выдал мне, например, http://www.nsc.ru/rus/docs/JS/
Кстати, неплохое руководство.
И где тут, например, в поисковике сайта innerHTML

Если найдете, съем свой язык...

tenshi 08.04.2008 21:29

у тебя нюх на всякий отстой ^_^
как ты это непотребство выискал?


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