0

我正在编写一个脚本,该脚本旨在自动截断一定大小的块引用,并向它们添加“阅读更多”链接。问题是块引号是嵌套在彼此内部的,这让事情变得有点棘手。我的脚本可以很好地处理单级块引用,但是当遇到嵌套的块引用时,它最终会擦除比我想要的更多的信息。

我想做的是:

  1. 检查父元素的子元素以找到父元素的第一个块引用子元素
  2. 检查此块引用是否在其第一段中包含图像。如果是这样,请复制此块引用的第一段和第二段。如果没有,只需克隆第一段。
  3. 检查并查看此块引用是否包含任何其他块引用。如果是这样,请克隆其所有后代块引号。
  4. 将父块引用的克隆段落和所有克隆的块引用后代(如果适用)组合成一个变量(我们将其称为 cloneCon)。
  5. 将父块引用的 html 替换为变量 cloneCon 的内容。
  6. 将阅读更多链接附加到父块引用。

这是我现在正在使用的代码:

var post = $('#post_two_ifr').contents().find('#tinymce');
var markup = $('<body>').append(post.html()); // temporary container

markup.children('blockquote:first').each(function() {
    var original = $(this).prev('p').children('a').attr('href'); 
    var viz = '';
    if ($(this).children('p:first').find('img').length > 0) {
        var viz = $(this).children('p:lt(2)').clone();
    } else {
        var viz = $(this).children('p:first').clone();
    }

     $(this).html(viz).append('<p><a href="'+original+'" class="tumblr_blog">Read More</a></p>');
});

post.html(markup.html());

每个函数中的所有markup.children内容都是我遇到的问题。这是我正在使用的 HTML 的样子:

<p><a class="tumblr_blog" href="http://example.org">user#1</a>:</p>
<blockquote>
    <p><a class="tumblr_blog" href="http://example.org">user#2</a>:</p>
    <blockquote>
        <div>
            <p><img alt="image" height="340" src="" /></p>
            <p>consectetur adipiscing elit. Nullam sit amet velit nibh. Aliquam leo libero, pellentesque eget fringilla eget, pretium eu purus. Pellentesque a neque at arcu fermentum volutpat. In et dolor ligula, et aliquam odio. Sed sagittis fermentum massa, vel tempus neque adipiscing nec. Nunc posuere commodo orci, ac imperdiet odio malesuada eget. Aliquam pharetra pretium faucibus. Sed erat urna, laoreet quis ornare quis, fermentum quis lacus. Vestibulum a interdum nisi. Proin hendrerit orci non neque dignissim feugiat. Vivamus pretium pretium nunc, ut dapibus augue ullamcorper at. Suspendisse ac est vel velit vehicula accumsan quis vel turpis. Pellentesque eros velit, ullamcorper ac tempus sit amet, placerat quis magna. Sed ipsum nibh, convallis at tempor sit amet, vehicula vitae mauris. Aenean rutrum, lorem vitae suscipit tempor, libero lorem porta diam, a semper nulla erat in mi. Morbi leo lacus, placerat id hendrerit vitae, semper id tellus.</p>
            <p><a class="tumblr_blog" href="http://example.org">Read More</a></p>
        </div>
    </blockquote>
    <p>Lorem Ipsum Dolor.</p>
    <p>Consectetur Adipsing Elit.</p>
    <p>I used to wonder what friendship could be.</p>
</blockquote>

谢谢您的帮助!

编辑:我明白了。我通过简单地告诉脚本克隆整个父块引用来简化我的执行,然后从父块引用中修剪出所需数量的子段落。

4

1 回答 1

0

我知道了。我通过告诉脚本完整地克隆父块引用,然后从父块引用中删除所需数量的子段落来简化我的执行。这样我就不需要检查是否有子块引用;它们是自动克隆的。

于 2012-12-16T20:17:05.770 回答