изменить divs css с помощью JavaScript - PullRequest
2 голосов
/ 07 декабря 2009

Могу ли я изменить стиль какой-нибудь ссылки. Вот что я имею в виду

<div id="somediv"><a href="#">something</a>/div>

Допустим, у меня есть css, как это:

#somediv a{
color:#000;
}

Теперь, например, при некоторых действиях, таких как щелчок мышью по любому элементу, я хочу изменить somediv a css на

#somediv a{
color:#00ffff;
}

Я знаю, как выбрать div, используя Document.get.elementById('somediv')
Можно ли выбрать a, используя вышеуказанный метод или любой другой?

Спасибо

ДЕТАЛИ: Да, я знаю, как выбрать его, используя jquery или прототип .. Я не могу использовать ни один из них ..

Ответы [ 6 ]

6 голосов
/ 07 декабря 2009

Если вы просто хотите применить стиль к определенному элементу, это очень легко сделать:

document.getElementById('whatever').style.color = '#f0f';

Если вы действительно хотите применить каскадные стили (например: #someDiv a), то это не так просто (хотя это определенно возможно). Я бы предложил применить новый класс к чему-то и иметь уже существующее правило в вашем CSS.

CSS:

#someDiv a {
    color: #000;
}
#someDiv.awesome a {
    color: #f0f;
}

Javascript:

document.getElementById('someDiv').className = "awesome";
1 голос
/ 07 декабря 2009

Вы можете использовать CSS для этого:

Например:

#somediv a:hover
{
    color:#0ff;
}

В противном случае вы можете создать выделенный класс (например, когда элемент щелкает):

#onclickclass
{
    color:#0ff;
}

Затем в JavaScript для события onClick выполните:

document.getElementById('somediv').className = 'onclickclass';
1 голос
/ 07 декабря 2009
document.getElementById ( 'somediv' ).children[0].style.color = 'new color';

при условии, что тег A будет первым элементом вашего DIV

1 голос
/ 07 декабря 2009

Да, вы можете изменить действующие правила CSS во время выполнения. См. Полностью Pwn CSS с Javascript для получения более подробной информации.

Если вы используете jQuery или YUI, есть хорошая информация в вопросе 1079237

0 голосов
/ 07 декабря 2009

Если вы действительно хотите выбрать якорь, вам придется пройти по массиву document.getElementById('somediv').children.

Как и предполагали другие, более простой ответ будет состоять в том, чтобы установить атрибут className в вашем div и разрешить каскадный стиль CSS на тег привязки.

0 голосов
/ 07 декабря 2009

А для изменения стиля используйте

document.getElementById('somediv').className = 'your-css-class';

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...