Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.04.2011, 10:48
Новичок на форуме
Отправить личное сообщение для anycall Посмотреть профиль Найти все сообщения от anycall
 
Регистрация: 05.04.2011
Сообщений: 4

Смена стиля "вышестоящего" элемента
Кастомизирую меню, в компоненту его создающую лезть не хотелось бы, помогите пожалуйста на JS изменить стиль первого элемента <div class="parent"> НАД элементом <div class="child_current">?
т.е. сейчас при активном пункте подменю исходник такой:
<div class="parent"><a href="#">1</a></div>
<div class="parent"><a href="#">2</a></div>
<div class="parent"><a href="#">3</a></div>
<div class="parent"><a href="#">4</a></div>

<div class="parent"><a href="#">5</a></div>
	<div class="child"><a href="#">5.1</a></div>
	<div class="child_current"><a href="#">5.2</a></div>
	<div class="child"><a href="#">5.3</a></div>

<div class="parent"><a href="#">6</a></div>
<div class="parent"><a href="#">7</a></div>


а хочется такой:
<div class="parent"><a href="#">1</a></div>
<div class="parent"><a href="#">2</a></div>
<div class="parent"><a href="#">3</a></div>
<div class="parent"><a href="#">4</a></div>

<div class="parent_current"><a href="#">5</a></div>
	<div class="child"><a href="#">5.1</a></div>
	<div class="child_current"><a href="#">5.2</a></div>
	<div class="child"><a href="#">5.3</a></div>

<div class="parent"><a href="#">6</a></div>
<div class="parent"><a href="#">7</a></div>
Ответить с цитированием
  #2 (permalink)  
Старый 05.04.2011, 11:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от anycall
изменить стиль первого элемента <div class="parent"> НАД элементом <div class="child_current">?
Как вариант...

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.parent {
}
.parent_current {
	border: 1px solid red;
}
.child_current {
	border: 1px solid green;
}
</style>
<script type="text/javascript">
function Go() {
	var o=document.getElementsByTagName('div')
	var i,oset
	for (i=0; i<o.length; i++) {
		if ((o[i].className=='parent')||(o[i].className=='parent_current')) {
			oset=o[i]
		}
		if (o[i].className=='child_current') {
			break
		}
	}
	if (oset) {
		oset.className='parent_current'
	}
}
</script>
</head>
<body>
<div class="parent"><a href="#">1</a></div>
<div class="parent"><a href="#">2</a></div>
<div class="parent"><a href="#">3</a></div>
<div class="parent"><a href="#">4</a></div>
<div class="parent"><a href="#">5</a></div>
<div class="child"><a href="#">5.1</a></div>
<div class="child_current"><a href="#">5.2</a></div>
<div class="child"><a href="#">5.3</a></div>
<div class="parent"><a href="#">6</a></div>
<div class="parent"><a href="#">7</a></div>
<input type='button' value='Go' onclick='Go()' />
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2011, 13:04
Новичок на форуме
Отправить личное сообщение для anycall Посмотреть профиль Найти все сообщения от anycall
 
Регистрация: 05.04.2011
Сообщений: 4

Огромное спасибо!!!
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2011, 13:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

Вариант на jquery
<!DOCTYPE html >
<html>
<head>
  <title></title>
<style type="text/css">
.parent {
}
.parent_current {
	border: 1px solid red;
}
.child_current {
	border: 1px solid green;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript">
 $(function() {
 $(":button").click(function() {$("div.child_current").prevAll('.parent:first').toggleClass('parent_current'); })
});
</script>
</head>
<body>
<div class="parent"><a href="#">1</a></div>
<div class="parent"><a href="#">2</a></div>
<div class="parent"><a href="#">3</a></div>
<div class="parent"><a href="#">4</a></div>
<div class="parent"><a href="#">5</a></div>
<div class="child"><a href="#">5.1</a></div>
<div class="child_current"><a href="#">5.2</a></div>
<div class="child"><a href="#">5.3</a></div>
<div class="parent"><a href="#">6</a></div>
<div class="parent"><a href="#">7</a></div>
<input type='button' value='Go' onclick='Go()' />
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2011, 16:37
Новичок на форуме
Отправить личное сообщение для anycall Посмотреть профиль Найти все сообщения от anycall
 
Регистрация: 05.04.2011
Сообщений: 4

рони, спасибо! Но почему-то класс не меняется, а добавляется (т.е. становится не "parent_current" а "parent parent_current". Как победить?

Последний раз редактировалось anycall, 05.04.2011 в 17:42.
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2011, 18:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

anycall,
$(function() {
 $(":button").click(function() {$("div.child_current").prevAll('.parent:first').removeClass().addClass('parent_current'); })
});
Ответить с цитированием
  #7 (permalink)  
Старый 05.04.2011, 18:10
Новичок на форуме
Отправить личное сообщение для anycall Посмотреть профиль Найти все сообщения от anycall
 
Регистрация: 05.04.2011
Сообщений: 4

рони,
нижайший поклон! Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение свойтсв стиля элемента по условию netkent Элементы интерфейса 2 05.12.2010 13:28
Смена класса стиля у дивов в меню resono Элементы интерфейса 6 11.11.2010 04:08
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28
Получение стиля элемента. BreatheInTheVoid Элементы интерфейса 4 01.05.2010 17:25
[новичок] Установка стиля элемента Vo.One Элементы интерфейса 3 18.03.2010 19:57