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

Moodle中仅含单个选项的dropdown-menu转按钮实现问询

解决方案

1. 给下拉菜单添加统一标识类

先给所有需要处理的.dropdown元素加一个统一类data-entry-dropdown,方便JS定位:

<div class="dropdown data-entry-dropdown">...</div>

2. 执行以下JavaScript代码

这段代码会自动处理所有目标下拉菜单,判断是否为单选项并替换:

document.addEventListener('DOMContentLoaded', function() {
    // 定位所有要处理的下拉菜单
    const dropdowns = document.querySelectorAll('.data-entry-dropdown');
    
    dropdowns.forEach(dropdown => {
        // 统计下拉菜单里的有效选项(非空的dropdown-item)
        const validItems = dropdown.querySelectorAll('.dropdown-item:not(:empty)');
        
        // 只有1个有效选项时进行替换
        if (validItems.length === 1) {
            const viewLink = validItems[0].querySelector('a');
            if (viewLink) {
                // 创建新的按钮式链接
                const actionButton = document.createElement('a');
                actionButton.className = 'btn btn-outline-primary';
                actionButton.href = viewLink.href;
                actionButton.role = 'button';
                actionButton.textContent = 'Mehr';
                
                // 继承原查看按钮的辅助属性
                const icon = viewLink.querySelector('i');
                actionButton.setAttribute('aria-label', icon.getAttribute('aria-label'));
                actionButton.setAttribute('title', icon.getAttribute('title'));
                
                // 替换原下拉菜单容器
                dropdown.parentNode.replaceChild(actionButton, dropdown);
            }
        }
    });
});

代码逻辑说明

  • 等待页面DOM加载完成后执行,确保所有元素都已渲染
  • 通过data-entry-dropdown类精准定位需要处理的下拉菜单
  • 统计下拉菜单中非空的dropdown-item数量,判断是否为单选项
  • 提取原查看链接的地址、aria标签、标题等属性,生成符合样式要求的按钮式链接
  • 用新按钮直接替换原下拉菜单容器,保留原按钮的样式和功能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:25:31