Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Добавление элемента с уникальным ID, уделение его! (https://javascript.ru/forum/events/13857-dobavlenie-ehlementa-s-unikalnym-id-udelenie-ego.html)

alien-shot 16.12.2010 21:08

Добавление элемента с уникальным ID, уделение его!
 
Всем привет!
Пипец замучался уже!:help:

Пишу модуль для TinyEditor который бы мне:
1. Добавлял мне элемент с уникальнымм числовым ID
Типа такого <div id="1">Тут текст какой нить</div>
2. Выводил мне их
3. Удалял нужный элемент по запросу.

Сейчас это работает в ручном режиме типа if <div id="1"> найден то проверяем есть ли <div id="2"> если нет то добавляем <div id="2"> и тд.
Для удаления если найден <div id="1"> то заменяем на "".
Ломаю голову как этот процесс автоматизировать!

К вам вопрос, как лучше всего организовать добавление элементов, как лучше всего организовать поиск и вывод элементов, как удалять элементы, как добавлять новый элемент если например есть элемент id=1 и элемент id=5?
Заранее благодарю!

Sweet 16.12.2010 21:21

Ну, начнем с того, что id не может начинаться с цифры:)

ksa 16.12.2010 22:20

Цитата:

Сообщение от Sweet
id не может начинаться с цифры

Нас просили больше не говорить такого...:D На то есть и тема. ;)

Цитата:

Сообщение от alien-shot
как лучше всего организовать добавление элементов

Добавить им одно на всех name. Далее использовать

document.getElementsByName('их_имя')


Ну а дальше в цикле все они твои... :)

alien-shot 16.12.2010 23:03

Цитата:

Сообщение от Sweet (Сообщение 84195)
Ну, начнем с того, что id не может начинаться с цифры:)

Опачки, я походу либо что-то да и не прочитал либо протупил! Почему ID не может начинаться с цифры?
http://javascript.ru/forum/events/13...a-s-cifry.html
Думаю этим все сказано!

Цитата:

Сообщение от ksa (Сообщение 84208)
Нас просили больше не говорить такого...:D На то есть и тема. ;)
АХА вот она http://javascript.ru/forum/events/13...a-s-cifry.html
Добавить им одно на всех name. Далее использовать

document.getElementsByName('их_имя')


Ну а дальше в цикле все они твои... :)

Ок добавлю я им одно на всх имя например <div name="date">.
Предположим получил я их в цикле! А дальшь то что?

Как удалить например из строки:
srt = '<div name="date">Текст 1</div><div name="date">Текст 2</div><div name="date">Текст 3</div><div name="date">Текст 4</div>';
элемент который содержит в себе (Текст 3), заведомо не зная что элемент содержит в себе именно (Текст 3) а не (Мама мыла раму)

Aetae 16.12.2010 23:42

ksa предлагал вариант для DOM.

Если же в строке то тупо поставить инкремент и не париться за порядок. Т.е. каждый последующий = i++.
Не думаю что точное следование по порядку(т.е. перезаписывание всего текста при каждом удалении) имеет какой-то смысл.

alien-shot 16.12.2010 23:52

Цитата:

Сообщение от Aetae (Сообщение 84227)
ksa предлагал вариант для DOM.

Если же в строке то тупо поставить инкремент и не париться за порядок. Т.е. каждый последующий = i++.
Не думаю что точное следование по порядку(т.е. перезаписывание всего текста при каждом удалении) имеет какой-то смысл.

А я и не парюсь за порядок! А каким образом ты их будешь выдергивать и удалять? И как это понять каждый следующий? Следующий за кем?

Вот прикинь открыл ты редактор TinyEditor вызвал модуль! он тебе отобразил все элементы в цикле, например которые нашел по регулярному выражению /<div id=\"\d*\".*?<\/div>/ig
и че, дальше то что? мне нужно воткнуть рядом с элементами кнопку удалить! а как я буду удалять если я не знаю id

ksa 18.12.2010 10:28

Цитата:

Сообщение от Aetae
ksa предлагал вариант для DOM.

Угу.

Цитата:

Сообщение от alien-shot
Как удалить

Как вариант...

<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE></TITLE>
<style>
</style>
<script>
function Del() {
	var o=document.getElementsByTagName('div')
	var val=document.getElementById('item').value
	var i
	for (i=0; i<o.length; i++) {
		if (o[i].name!='date') {
			continue
		}
		if (o[i].innerHTML==val) {
			o[i].removeNode(true)
			break
		}
	}
}
</script>
</HEAD>
<BODY>
<div name="date">Текст 1</div>
<div name="date">Текст 2</div>
<div name="date">Текст 3</div>
<div name="date">Текст 4</div>
<input type='text' id='item' value='Текст 3' />
<input type='button' value='Del' onclick='Del()' />
</BODY>
</HTML>


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