You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据wrapper内.items元素数量插入对应广告DIV?

动态插入广告元素的实现方案

现有HTML结构:

<div class="wrapper">
  <div class="items">Item 1</div>
  <div class="items">Item 2</div>
  <div class="items">Item 3</div>
  <div class="items">Item 4</div>
  <div class="items">Item 5</div>
  <div class="items">Item 6</div>
</div>

需求:当.wrapper内的.items元素数量大于3时,插入<div class="d1">ADS</div>;当数量大于5时,插入<div class="d2">ADS</div>。请问如何实现?

这个需求用JavaScript就能轻松搞定,核心思路是先统计.items的数量,再根据数量判断要插入的广告元素,最后把它们放到指定位置。下面提供两种常用实现方式:

一、原生JavaScript实现(无框架依赖)

直接使用浏览器原生API,兼容性好,适合大多数场景:

// 获取目标元素
const wrapper = document.querySelector('.wrapper');
const items = wrapper.querySelectorAll('.items');
const itemCount = items.length;

// 插入d1广告(当items数量>3时)
if (itemCount > 3) {
  const ad1 = document.createElement('div');
  ad1.className = 'd1';
  ad1.textContent = 'ADS';
  // 插入到第3个.items元素的后面
  wrapper.insertBefore(ad1, items[3]);
}

// 插入d2广告(当items数量>5时)
if (itemCount > 5) {
  const ad2 = document.createElement('div');
  ad2.className = 'd2';
  ad2.textContent = 'ADS';
  // 插入到第5个.items元素的后面
  wrapper.insertBefore(ad2, items[5]);
  // 若需将广告放在所有items末尾,可替换为:wrapper.appendChild(ad2);
}

关键说明:

  • querySelectorAll会返回所有匹配的.items元素,通过length属性统计数量。
  • createElement用于创建新的DOM元素,设置好类名和文本内容后,用insertBefore精准控制插入位置(items[3]是第4个元素,插入到它前面就刚好在第3个items之后)。
  • 如果你的items是动态渲染的(比如从接口获取数据后生成),要确保这段代码在items渲染完成后执行,否则会统计到错误的数量。

二、jQuery实现(适合已引入jQuery的项目)

如果项目中已经使用jQuery,代码会更简洁:

const $wrapper = $('.wrapper');
const itemCount = $wrapper.find('.items').length;

// 插入d1广告
if (itemCount > 3) {
  $('<div class="d1">ADS</div>').insertAfter($wrapper.find('.items').eq(2));
}

// 插入d2广告
if (itemCount > 5) {
  $('<div class="d2">ADS</div>').insertAfter($wrapper.find('.items').eq(4));
}

关键说明:

  • eq(2)对应第3个.items元素(jQuery的索引从0开始),insertAfter方法直接将元素插入到目标元素的后方,写法更直观。

内容的提问来源于stack exchange,提问作者Rexhep Rexhepi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:07:46