Показать сообщение отдельно
  #2 (permalink)  
Старый 06.03.2009, 13:58
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

эээ. ну во первых я бы переделал пост и вместо скриншота сделал цитату с тегом кода. как-бы так более логично.

--edited
а по теме вопроса:
1. пользуемся кодом, предоставленным Dustin Diaz для получения всех элементов с заданным классом:

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		} //if
	} //for
	return classElements;
}

и вызов:
var sublevel_id = getElementsByClass("sublevel", document, "A");
//document для поиска элементов во всем дереве, или указание родителя с которого начинаешь искать
//А - тег <a> в котором у тебя стоят эти классы. можно * для людых тегов


или можно воспользоваться такой обёрткой:
if(document.getElementsByClassName) {
	//Firefox 3  C++ native implementation
	var sublevel_id = document.getElementsByClassName("sublevel"); 
} else {
	//Dustin Diaz's getElementsByClass implementation
	var sublevel_id = getElementsByClass("sublevel", document, "A");
}


Это позволит сэкономить время поиска элементов для Gecko браузеров.

Далее создаем новый див
var contentDiv = document.createElement('DIV');
//вместо document нужно указать родителя для вставляемых потомков


и в него копируем эти элементы.
var sublevel_id_len = sublevel_id.length;
for (var ind=0; ind<sublevel_id_len; ind++)
{
	contentDiv.appendChild(sublevel_id[ind]);
}


и нужно удалить старые записи:
function removeElement(element)
{
	element.parentNode.removeChild(element);
	return true;
}


var sublevel_id_len = sublevel_id.length;
for (var ind=0; ind<sublevel_id_len; ind++)
{
	removeElement(sublevel_id[ind]);
}



конечно, последние две цитаты с кодом можно объединить:
function removeElement(element)
{
	element.parentNode.removeChild(element);
	return true;
}


var sublevel_id_len = sublevel_id.length;
for (var ind=0; ind<sublevel_id_len; ind++)
{
	contentDiv.appendChild(sublevel_id[ind]);
	removeElement(sublevel_id[ind]);
}



думаю вот примерно так это можно сделать

Последний раз редактировалось AzriMan, 06.03.2009 в 14:25.
Ответить с цитированием