Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закрыть текущий элемент div или span 
V
    Опции темы
En_t_end
Дата 7.4.2010, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



Код

<!-- ... -->
<div>
<script>
<!-- Закрыть текущий элемент -->
</script>
<!-- ... -->
<span>
<script>
<!-- Закрыть текущий элемент -->
</script>
<!-- ... -->

Т.е мне нужен такой скрипт, который бы закрывал автоматически текущий span либо div корректно, т.е для span нужно сгенерить </span>, для div - </div>

На самом деле, я был бы рад, если бы можно было узнать тип элемента в котором находится <script>, по идее должно быть что-то вроде document.nodeParent

Это сообщение отредактировал(а) En_t_end - 7.4.2010, 20:14
PM MAIL ICQ Skype GTalk Jabber   Вверх
skyboy
Дата 7.4.2010, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



если вместо допотопного document.write использовать для генерации контента document.createElement, то будет намного проще - не надо будет явным образом "закрывать теги".
в javascript-коде не только никак не обратиться к родительскому элементу для текущего <script>, но и никак не получить доступ к самому тегу <script>.
если HTML код, включая тег <script>, формируешь ты, то можешь сделать конструкцию:
Код

<script id="script184979">
.....
document.getElementById('script184979').parentNode.tagName // то, что ты хотел
...
</script>

PM MAIL   Вверх
En_t_end
Дата 7.4.2010, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



Цитата(skyboy @  8.4.2010,  00:20 Найти цитируемый пост)
если вместо допотопного document.write использовать для генерации контента document.createElement, то будет намного проще - не надо будет явным образом "закрывать теги".

Тут немного другая ситуация smile я транслирую wiki-код с моими тегами(открывающийся и закрывающийся), причем открывающихся - 2 типа, которые могут транслироваться как в div, так и в span, а вот закрывающийся только один.

Спасибо, работает.
Код

<script id="ttt">
var tagname = (document.getElementById("ttt").parentNode.tagName).upper
if(tagname == "SPAN")
    document.writeln("</span>")
else if(tagname == "DIV")
    document.writeln("</div>")
</script>


Это сообщение отредактировал(а) En_t_end - 8.4.2010, 07:14
PM MAIL ICQ Skype GTalk Jabber   Вверх
skyboy
Дата 7.4.2010, 21:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



Цитата(En_t_end @  7.4.2010,  19:28 Найти цитируемый пост)
я транслирую wiki-код с моими тегами

на стороне клиента при помощи javascript? при помощи операций над входящим текстом? почему тогда сразу не заменять и открывающий, и закрывающий теги?
PM MAIL   Вверх
ksnk
Дата 7.4.2010, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(En_t_end @  7.4.2010,  20:28 Найти цитируемый пост)
wiki-код с моими тегами(открывающийся и закрывающийся), причем открывающихся - 2 типа, которые могут транслироваться как в div, так и в span, а вот закрывающийся только один


Тоесть есть текст (строка) в которой нужно заменить все из пары открывающих тегов на div и span, а все закрывающие теги - на тот, который был открыт последним? 
Простой цикл. Ищем (регуляркой) первый попавшийся из открывающих тегов или закрывающий. Если тег открывающий, на стек ложим тип тега. А самого его - заменяем. Если закрывающий - со стека берем тег и закрываем его. Если ничего не нашли - наши победили...
какбэ ничего сложного ...

Цитата(En_t_end @  7.4.2010,  20:28 Найти цитируемый пост)
Спасибо, работает.
Код

<script id="ttt">
var tagname = (document.getElementById("ttt").parentNode.tagName).upper
if(tagname == "SPAN")
    document.writeln("</span>")
else if(tagname == "DIV")
    document.writeln("</div")
</script>


Точно работает?  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
En_t_end
Дата 8.4.2010, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



skyboy, 
ksnk, 
У меня нет всего wiki-текста целиком. На каждое вхождение в текст моих тегов стандартный wiki-обработчик вызывает мой триггер, который генерирует html.
PM MAIL ICQ Skype GTalk Jabber   Вверх
skyboy
Дата 8.4.2010, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



Цитата(En_t_end @  8.4.2010,  06:16 Найти цитируемый пост)
мой триггер, который генерирует html. 

триггер на РНР или на javascript?
если на РНР, то можно запоминать последний открытый тег(или даже стек открытых тегов) в статической переменной и это будет удобнее, чем формировать javascript, который будет подправлять DOM за счет document.write

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.