insertAfter为多个div

时间:2017-08-09 23:50:12

标签: javascript jquery

我有以下脚本部分

.on('finish.countdown', function(event) {
        $(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
    }) .insertAfter('#cartDefaultHeading');

我希望在几个不同页面上的多个div之后显示相同的输出。如果我更改div名称,它将按预期显示在新位置。 但如果我试图让它出现在多个上面,我就无法获得任何输出。

我尝试了以下

.on('finish.countdown', function(event) {
        $(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
    }) .insertAfter('#cartDefaultHeading').insertAfter('#checkoutOrderHeading');

.on('finish.countdown', function(event) {
    $(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
}) .insertAfter('#cartDefaultHeading'), .insertAfter('#checkoutOrderHeading') ;

甚至

.on('finish.countdown', function(event) {
    $(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
}) .insertAfter('#cartDefaultHeading');
    $(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
}) .insertAfter('#checkoutOrderHeading');

没有用。每当我尝试将它放在多个div上时,我都不会接受它。 实现此目的的正确语法是什么?

完整的脚本如下所示:

<script>
jQuery(function($){
if (($('#cartDefaultHeading').length || $('#checkoutOrderHeading').length) && !$('.checkout_dispatch_timer').length) {
    var $this = $('<div class="checkout_dispatch_timer <?php echo $dispatch_countdown_timer_style; ?>"></div>');
    <?php if ($dispatch_countdown_timer_disable === false) { ?>
    var finalDate = moment.tz('<?php echo $dispatch_countdown_timer_date_array[4]; ?>', '<?php echo date_default_timezone_get(); ?>');
    $this.countdown(finalDate.toDate())
    .on('update.countdown', function(event) {
        var format = '%Mm';

        if (event.offset.totalDays > 0) {
            format = '%Dd:%Hh:' + format;
        } else if (event.offset.totalHours > 0) {
            format = '%Hh:' + format;
        } else {
            format = format + ':%Ss';
        }

        dispatch_countdown_timer_text = "<?php echo $dispatch_countdown_timer_text; ?>";
        dispatch_countdown_timer_text = dispatch_countdown_timer_text.replace('%s', event.strftime(format));

        $(this).text(dispatch_countdown_timer_text);

    })
    .on('finish.countdown', function(event) {
        $(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
    }) 
    .insertAfter('#cartDefaultHeading');
<?php } else { ?>
    $this.text("<?php echo $dispatch_countdown_timer_text; ?>").insertAfter('#checkoutOrderHeading');
<?php } ?>
}
});
</script>

2 个答案:

答案 0 :(得分:1)

您不能多次使用case class testRdd(name:String,id:Int,price:Int) val Cols = testRdd.toDF().groupBy("id").agg( countDistinct("name").when(col("price")>0,1).otherwise(0) ,因为在尝试将其插入下一个位置之前,每个元素都将从之前的位置删除该元素。使用testRdd.toDF().groupBy("id").agg(if(col("price")>0)countDistinct("name"))

.insertAfter()

这假定任何网页只有.after$('#cartDefaultHeading, #checkoutOrderHeading').after( $this.countdown(finalDate.toDate()) .on('update.countdown', function(event) { var format = '%Mm'; if (event.offset.totalDays > 0) { format = '%Dd:%Hh:' + format; } else if (event.offset.totalHours > 0) { format = '%Hh:' + format; } else { format = format + ':%Ss'; } dispatch_countdown_timer_text = "<?php echo $dispatch_countdown_timer_text; ?>"; dispatch_countdown_timer_text = dispatch_countdown_timer_text.replace('%s', event.strftime(format)); $(this).text(dispatch_countdown_timer_text); }) .on('finish.countdown', function(event) { $(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled'); }) );之一,因为您无法在多个位置插入相同的元素(#cartDefaultHeading#checkoutOrderHeading don'做一个副本,它移动元素本身。)

答案 1 :(得分:0)

根据文档,您可以将一组元素传递给函数。 资料来源:http://api.jquery.com/insertafter/

`insertAfter(['#cartDefaultHeading','#checkoutOrderHeading']);