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

ASP Repeater场景下,nochild无内容时移除fa-chevron-down图标方法

解决方案

核心思路

因为.content和.internal是ASP Repeater逐行生成的,二者属于同一组循环项,所以可以通过DOM层级关系,找到每组中.nochild对应的.content元素,再判断是否移除图标。


方法一:原生JavaScript实现

// 遍历所有.internal元素
document.querySelectorAll('.internal').forEach(internal => {
  // 定位当前组内的.nochild元素
  const nochild = internal.querySelector('.nochild');
  // 检查nochild是否没有子元素
  if (nochild && nochild.childElementCount === 0) {
    // 找到对应组的.content元素(两种场景选其一)
    // 场景1:content是internal的前一个直接兄弟节点
    const content = internal.previousElementSibling;
    // 场景2:二者被同一父容器包裹(比如Repeater生成的项容器)
    // const content = internal.closest('.repeater-item').querySelector('.content');
    
    // 移除目标图标
    const icon = content?.querySelector('.fa.fa-chevron-down');
    if (icon) icon.remove();
  }
});

方法二:jQuery实现(适配ASP.NET项目常用场景)

$('.internal').each(function() {
  const $nochild = $(this).find('.nochild');
  if ($nochild.children().length === 0) {
    // 找到对应组的.content元素(两种场景选其一)
    // 场景1:content是internal的前一个兄弟节点
    const $content = $(this).prev('.content');
    // 场景2:通过共同父容器定位
    // const $content = $(this).closest('.repeater-item').find('.content');
    
    // 移除目标图标
    $content.find('.fa.fa-chevron-down').remove();
  }
});

注意事项

  • 如果Repeater生成的结构中,.content和.internal并非相邻兄弟,而是被统一的父容器包裹,要替换成closest查找父容器的逻辑,避免误操作其他组的元素。
  • 脚本需在DOM加载完成后执行:原生JS可放在DOMContentLoaded事件中,jQuery可放在$(document).ready()内或页面底部。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:38:30