在第一段之后插入div,但不在blockquote中插入段落

时间:2015-03-26 22:28:47

标签: javascript jquery

我的代码完美无缺:

$('.container p').eq(2).after( $('.inserted') );

但是,如果第一段是在blockquote中,则会出现一些样式问题,我需要避免这种情况。所以我需要更改代码,以便如果页面顶部有一个blockquote,则将.inserted div移动到blockquote之后。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

请试一试:

var obj = $('.container p').eq(2);
if($('.container p').eq(2).parents("blockquote").length) 
    obj = $('.container p').eq(2).parents("blockquote");
obj.after( $('.inserted') );

你会在这里找到一个例子:http://jsfiddle.net/hyunkeln/k0hq6a46/6/

这个脚本的作用是查看所选段落是否来自blockquote中的子句,如果是,则插入的div将在blockquote后面而不是所选段落。

答案 1 :(得分:0)

基于hyunkeln的代码,我想出了这个,这在100%的时间都有效:

$(function() {
    var $graphs     = $('.container p'),
        elem        = $graphs.eq(3),
        hasImage    = Boolean( $graphs.eq(3).parents('blockquote').length );

    if ( hasImage ) {
        elem = $graphs.eq(3).parents('blockquote');
    }
    elem.after( $('.inserted') );
});