【问题标题】:Replace HR Element with Open Div用 Open Div 替换 HR 元素
【发布时间】:2013-03-04 07:29:38
【问题描述】:

所以我已经被这个问题难住了一段时间,似乎无法真正解决它。我有一些通过所见即所得编辑器添加的内容。我想要做的是使用<hr> 元素在其中添加div 来控制容器的外观。问题是它添加了关闭 div。我想将结束 div 添加到下一个 hr 元素。

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?

【问题讨论】:

    标签: jquery replacewith


    【解决方案1】:

    听起来你想包装从第一个 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/

    【讨论】:

    • 是说Uncaught TypeError: Object [object Object] has no method 'replace'
    • 在 jsfiddle.net 中提供一些示例 html,让它在那里工作。还可以使用更好的浏览器控制台来检查错误,Firefox 中的 Chrome 或 Firebug...看起来像 IE 错误,而其他的则提供更多信息
    • 看起来它在 jsfiddle 中工作。我想我的 jQuery 版本有问题。 jsfiddle.net/EvR9f
    • 保存小提琴并发布链接...我写了这个未经测试
    • 不确定你想要什么...使用last-child 正在包装所有内容...并超过第二个 HR。可以改用firstlast。一些颜色有助于查看包裹的内容jsfiddle.net/EvR9f/1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多