2013-03-03 3 views
2

Так что я уже давно с этим сдерживался и, похоже, не могу обойти его. У меня есть контент, который добавляется через редактор wysiwyg. Я хочу использовать элемент <hr>, чтобы добавить туда div, чтобы контролировать внешний вид контейнера. Проблема в том, что он добавляет закрывающий div. Я хочу добавить закрывающий div к следующему элементу hr.Замените элемент HR на Open Div

var firstChild = jQuery('.content-container-wrapper hr:first-child'); 
var lastChild = jQuery('.content-container-wrapper hr:last-child'); 
if (firstChild) { 
    jQuery(firstChild).replaceWith('<div class="working">'); 
}; 

Есть ли способ сказать браузеру не добавлять закрывающий div?

ответ

0

Похоже, вы хотите обернуть все, начиная с первого HR и заканчивая последним.

После этого будет обертываться все между двумя HR, а затем удалять их (моя интерпретация вашего вопроса).

var $start=jQuery('.content-container-wrapper hr:first-child'), 
    $end=jQuery('.content-container-wrapper hr:last-child'); 

$start.nextUntil($end).wrapAll('<div class="working">'); 
$start.add($end).remove(); 

Вы не можете вставить часть элемента, а затем вставьте конец, как вы делаете в текстовом редакторе

ссылка API:

http://api.jquery.com/wrapAll/

http://api.jquery.com/nextUntil/

+0

It говорит, что Uncaught TypeError: Object [object Object] не имеет метода «replace» – Barrett

+0

предоставляет некоторый образец html в jsfiddle.net, будет ge Там он работает. Также используйте лучшую консоль браузера для проверки ошибок, Chrome или Firebug в Firefox ... это выглядит как ошибка IE, а другие более информативны. – charlietfl

+0

Похоже, что он работает в jsfiddle. Я думаю, что у меня проблема с версией jQuery. http://jsfiddle.net/EvR9f/ – Barrett

Смежные вопросы