Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.02.2013, 08:22
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

как изменить класс элементов
Как заменить класс элементов обратившись непосредственно к ним с помощью их класса)


function replaceClass (oldClass, newClass) {
var elements = d.getElementsByClassName(oldClass),
      i,
      len;

    for (i = 0, len = elements.length; i < len; i += 1) {
       elements[i].className = newClass;
    }
}


Конструкция работает, но (что и логично) не совсем правильно:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <style>
        .xxx {
            width: 50px;
            height: 50px;
            background: blue;
            margin: 10px;
            float: left;
        }
        .yyy {
            width: 50px;
            height: 50px;
            background: red;
            margin: 10px;
            float: left;
        }
    </style>
    <title></title>
</head>
<body>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<script>
document.onclick = function replaceClass () {
var elements = document.getElementsByClassName("xxx"),
      i,
      len;

    for (i = 0, len = elements.length; i < len; i += 1) {
       elements[i].className = "yyy";
    }
};
</script>
</body>
</html>

Последний раз редактировалось dmitry111, 13.02.2013 в 08:29.
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2013, 08:52
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

вариант # 1:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <style>
        .xxx {
            width: 50px;
            height: 50px;
            background: blue;
            margin: 10px;
            float: left;
        }
        .yyy {
            width: 50px;
            height: 50px;
            background: red;
            margin: 10px;
            float: left;
        }
    </style>
    <title></title>
</head>
<body>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<script>
document.onclick = function replaceClass() {
	var elements = document.getElementsByClassName("xxx");

	if (elements[0]) {
		elements[0].className = "yyy";
		replaceClass();
	}
};
</script>
</body>
</html>



критикуем, предлагаем свои варианты
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2013, 09:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от dmitry111
Как заменить класс элементов обратившись непосредственно к ним с помощью их класса)
Как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
.xxx {
	height: 50px;
	margin: 5px;
	background: blue;
}
.yyy {
	height: 50px;
	margin: 5px;
	background: red;
}
</style>
<script type="text/javascript">
function replaceClass() {
	var o = document.getElementsByTagName("div"),
		i;
	for (i = 0; i<o.length; i++) {
		if (o[i].className=='xxx') {
			o[i].className = "yyy"
		};
	};
};
</script>
</head>
<body>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<button onclick='replaceClass();'>test</button>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 13.02.2013, 09:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Или так...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
.box {
	height: 50px;
	margin: 5px;
}
.xxx {
	background: blue;
}
.yyy {
	background: red;
}
</style>
<script type="text/javascript">
function replaceClass() {
	$('.xxx').removeClass('xxx').addClass('yyy');
};
</script>
</head>
<body>
<div class="box xxx"></div>
<div class="box xxx"></div>
<div class="box xxx"></div>
<div class="box xxx"></div>
<div class="box xxx"></div>
<button onclick='replaceClass();'>test</button>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 13.02.2013, 09:04
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от ksa
Как вариант...
ksa,

нет)))
Надо обращаться через класс!

Последний раз редактировалось dmitry111, 13.02.2013 в 09:06.
Ответить с цитированием
  #6 (permalink)  
Старый 13.02.2013, 09:05
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от ksa
Или так...
ksa,

и без jQuery)
Ответить с цитированием
  #7 (permalink)  
Старый 13.02.2013, 09:05
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от dmitry111
Надо обращаться через класс!
И каким образом ты это собираешся делать без JQ?
Ответить с цитированием
  #8 (permalink)  
Старый 13.02.2013, 09:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от dmitry111
document.getElementsByClassName("xxx");
Это не везде есть...
Ответить с цитированием
  #9 (permalink)  
Старый 13.02.2013, 09:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

dmitry111,
Вариант ...)))
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <style>
        .xxx {
            width: 50px;
            height: 50px;
            background: blue;
            margin: 10px;
            float: left;
        }
        .yyy {
            width: 50px;
            height: 50px;
            background: red;
            margin: 10px;
            float: left;
        }
    </style>
    <title></title>
</head>
<body>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<script>
document.onclick = function replaceClass () {
var elements = document.getElementsByClassName("xxx"),
      i,
      len;

    for (i = elements.length-1; i > -1; i -= 1) {
       elements[i].className = "yyy";
    }
};
</script>
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 13.02.2013, 09:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

dmitry111,
или так
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <style>
        .xxx {
            width: 50px;
            height: 50px;
            background: blue;
            margin: 10px;
            float: left;
        }
        .yyy {
            width: 50px;
            height: 50px;
            background: red;
            margin: 10px;
            float: left;
        }
    </style>
    <title></title>
</head>
<body>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<div class="xxx"></div>
<script>
document.onclick = function replaceClass () {
var elements = document.getElementsByClassName("xxx");

    for (; elements[0];) {
       elements[0].className = "yyy";
    }
};
</script>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как обратиться к items элемента из другого элемента и изменить его? Krepkii ExtJS 2 12.02.2013 14:53
Как обновить список элементов? boilroom jQuery 2 18.07.2011 20:26
Как изменить стиль дива diamed Events/DOM/Window 6 25.06.2011 18:52
как изменить масштаб кнопки Taurus1195 Общие вопросы Javascript 12 19.05.2011 18:24
Как поменять последовательность элементов? AngeIa jQuery 2 11.05.2011 17:57