使用 jquery 和
分割内容标记并把它放到另一个div中

发布于 2025-01-08 00:13:29 字数 403 浏览 0 评论 0原文

我在 div 类“.category-info”中使用tinyMCE 输入了一些文本。可以使用 hr 标签分割文本。我想要做的是用 jQuery 分割文本并将文本的第二部分(在 hr 标签之后)包装到单独的 div 中。我的代码如下所示:

var str = $('.category-info').html();
var splitter = $(str.split('<hr>')[1]).html();
$(splitter).wrap('<div class="news-part" />');

当我警告变量拆分器时,它显示 html 内容(但是没有 p 标签就很奇怪,它就在 hr 标签之后),但它没有包装到 div 中。

I got with some text entered with tinyMCE in a div class'.category-info'. Text can be splited with hr tag. What I want to do is split the text with jQuery and wrap the second part of the text (after hr tag) into separate div. My code looks like this:

var str = $('.category-info').html();
var splitter = $(str.split('<hr>')[1]).html();
$(splitter).wrap('<div class="news-part" />');

When I alert variable splitter it shows html content (but what's weired without p tag which is right after hr tag) but it's not wrapped into div.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

愛上了 2025-01-15 00:13:29

要在 hr 之后包装所有部分,我会执行如下操作,

var str = $('.category-info').html();
str = str.split('<hr>');

$('.category-info').html(str[0] + 
          '<div class="news-part">' + 
             str[1] + 
          '</div>');

DEMO

如果我理解正确的话,你想用

hr 之后的元素包装起来。然后尝试下面的代码,

$('.category-info hr').next().wrap('<div class="news-part" />');

<一href="http://jsfiddle.net/skram/p4JFx/1/" rel="nofollow">演示

To wrap all part after hr, I would do something like below,

var str = $('.category-info').html();
str = str.split('<hr>');

$('.category-info').html(str[0] + 
          '<div class="news-part">' + 
             str[1] + 
          '</div>');

DEMO

If I understood correctly, you want to wrap the element after hr with <div class="news-part" />.. Then try below code,

$('.category-info hr').next().wrap('<div class="news-part" />');

DEMO

请叫√我孤独 2025-01-15 00:13:29

这将做你想做的事......

var str = $('.category-info').html();
var splitter = str.split('<hr>')[1];
$(splitter).wrap('<div class="news-part" />');

This will do what you want...

var str = $('.category-info').html();
var splitter = str.split('<hr>')[1];
$(splitter).wrap('<div class="news-part" />');
爱*していゐ 2025-01-15 00:13:29

我遇到了类似的问题,在阅读这篇文章后找到了解决方案。这将在一个元素处分割内容,并用 div 包裹该元素之后的所有内容(直到下一个元素):

$('.category-info hr').each(function(){ 
    $(this).nextUntil('hr').wrapAll('<div class="news-part"/>');
});

这仅在您有


元素时才有效。在每一项之前(包括开头的一项)。

I had a similar problem which I found a solution to after reading this post. This will split content at an element and wrap everything after the element (up to the next one) with a div:

$('.category-info hr').each(function(){ 
    $(this).nextUntil('hr').wrapAll('<div class="news-part"/>');
});

This will only work in your case when you have an <hr> element before each item (including one at the start).

安穩 2025-01-15 00:13:29

当您使用 $.wrap() 时,您应该将其附加到您想要换行的元素的选择器上。

我理解你的问题的方式,试试这个:

$('.category-info hr:nth-child(2)').wrap('<div class="news-part" />');

When you use $.wrap(), you should attach it to a selector of the element that you'd like to wrap.

The way I understand your problem, try this:

$('.category-info hr:nth-child(2)').wrap('<div class="news-part" />');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文