Javascript JS如何在每5个元素后插入div。有点等级

Javascript JS如何在每5个元素后插入div。有点等级,javascript,jquery,Javascript,Jquery,如果还没有插入,我想在类为“art item”的第5个元素后插入Ad div。 我正在尝试下一步: function insertAfter(newNode, referenceNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); } function addAdvBlocks() { var items = document.getElementsByClassName

如果还没有插入,我想在类为“art item”的第5个元素后插入Ad div。 我正在尝试下一步:

function insertAfter(newNode, referenceNode) {
   referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
function addAdvBlocks() {
    var items = document.getElementsByClassName('art-item');
    if(items.length<6){
       return;
    }
    var indx = 4;
    var slotDiv = document.createElement('div');
    slotDiv.id = '';
    slotDiv.className = 'item col-lg-4 col-md-4 col-sm-6 col-xs-12 my-ad';

    while(indx<items.length){
       if(!items[indx].nextSibling.classList.contains('my-ad')){
           insertAfter(slotDiv,items[indx]);
        }
    indx+=6;
    }
}
函数insertAfter(newNode,referenceNode){
referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling);
}
函数addAdvBlocks(){
var items=document.getElementsByClassName('art-item');
if(项目。长度。艺术项目:第n个子项(5n)”。每个(功能(indx,元素){
if(!$(elem).next().hasClass('my-ad')){
$(elem).after(adBlock);
}
});
请,我需要您的帮助)

我的解决方案:

function addAdvBlocks() {
if ($('.item').length < 6)
    return;
var adBlock = '<div class="item col-lg-4 col-md-4 col-sm-6 col-xs-12 my-ad" style="width:300px;height: 250px"></div>';
var outerIndx = 4;
$('.art-item').each(function (indx, elem) {
    if(indx == outerIndx){
        if (!$(elem).next().hasClass('my-ad')) {
            $(elem).after(adBlock);
        }
        outerIndx+=5;
    }
});
}
函数addAdvBlocks(){
如果($('.item')。长度<6)
返回;
var adBlock='';
var outerIndx=4;
$('艺术项目')。每个(功能(indx,元素){
if(indx==outerIndx){
if(!$(elem).next().hasClass('my-ad')){
$(elem).after(adBlock);
}
outerIndx+=5;
}
});
}
现在,在每次调用该函数时,
块将添加到类为“.art item”的第5个元素之后(如果还不存在)。
АСжжзззззззззззззззаа,аааааааааааааааааааааblock。若要找出所接触的DOM元素,它会选择rgiht元素。但插入新块并不总是发生,尽管粘贴函数会调用。它只在最后一个处理的元素之后插入。您的jquery逻辑对我有效:正如我看到的jquery$('.art-item:nth-child(5n)')选择器忽略('.art-item'))对于函数的第二次调用。对于第二次调用,它也计算插入的块数…为什么。。
function addAdvBlocks() {
if ($('.item').length < 6)
    return;
var adBlock = '<div class="item col-lg-4 col-md-4 col-sm-6 col-xs-12 my-ad" style="width:300px;height: 250px"></div>';
var outerIndx = 4;
$('.art-item').each(function (indx, elem) {
    if(indx == outerIndx){
        if (!$(elem).next().hasClass('my-ad')) {
            $(elem).after(adBlock);
        }
        outerIndx+=5;
    }
});
}