| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Закрыть текущий элемент div или span |
| Автор: En_t_end 7.4.2010, 20:11 | ||
Т.е мне нужен такой скрипт, который бы закрывал автоматически текущий span либо div корректно, т.е для span нужно сгенерить </span>, для div - </div> На самом деле, я был бы рад, если бы можно было узнать тип элемента в котором находится <script>, по идее должно быть что-то вроде document.nodeParent |
| Автор: skyboy 7.4.2010, 20:20 | ||
| если вместо допотопного document.write использовать для генерации контента document.createElement, то будет намного проще - не надо будет явным образом "закрывать теги". в javascript-коде не только никак не обратиться к родительскому элементу для текущего <script>, но и никак не получить доступ к самому тегу <script>. если HTML код, включая тег <script>, формируешь ты, то можешь сделать конструкцию:
|
| Автор: skyboy 7.4.2010, 21:03 |
на стороне клиента при помощи javascript? при помощи операций над входящим текстом? почему тогда сразу не заменять и открывающий, и закрывающий теги? |
| Автор: ksnk 7.4.2010, 23:37 | ||||||
Тоесть есть текст (строка) в которой нужно заменить все из пары открывающих тегов на div и span, а все закрывающие теги - на тот, который был открыт последним? Простой цикл. Ищем (регуляркой) первый попавшийся из открывающих тегов или закрывающий. Если тег открывающий, на стек ложим тип тега. А самого его - заменяем. Если закрывающий - со стека берем тег и закрываем его. Если ничего не нашли - наши победили... какбэ ничего сложного ...
Точно работает? |
| Автор: En_t_end 8.4.2010, 07:16 |
| skyboy, ksnk, У меня нет всего wiki-текста целиком. На каждое вхождение в текст моих тегов стандартный wiki-обработчик вызывает мой триггер, который генерирует html. |
| Автор: skyboy 8.4.2010, 10:37 |
триггер на РНР или на javascript? если на РНР, то можно запоминать последний открытый тег(или даже стек открытых тегов) в http://php.net/manual/en/language.variables.scope.php#language.variables.scope.static и это будет удобнее, чем формировать javascript, который будет подправлять DOM за счет document.write |