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

如何让同一段JavaScript代码同时作用于getElementsByClassName返回的两个对象

你只要把处理单个元素的逻辑封装为通用函数,遍历所有匹配到的元素执行即可,修改后的代码如下:

// 获取所有匹配的.th元素
var textList = document.getElementsByClassName("th");
var animationDelay = 6;

// 封装单个元素的处理逻辑
function processTextEl(text) {
    var newDom = '';
    for(let i = 0; i < text.innerText.length; i++) {
        newDom += '<span class="char">' + (text.innerText[i] == ' ' ? '&nbsp;' : text.innerText[i])+ '</span>';
    }
    text.innerHTML = newDom;
    var length = text.children.length;
    for(let i = 0; i < length; i++) {
        text.children[i].style['animation-delay'] = animationDelay * i + 'ms';
    }
}

// 遍历所有匹配元素,逐个执行处理
for (let i = 0; i < textList.length; i++) {
    processTextEl(textList[i]);
}

改动说明

  • 原代码直接把获取到的元素集合覆盖为第一个元素text[0],导致只能处理第一个匹配对象,现在保留完整的元素集合遍历执行,即使后续站点匹配到更多.th元素也能自动适配,不需要额外修改代码
  • 把重复的处理逻辑封装为独立函数,避免冗余代码,后续调整动画参数只要修改一处即可
  • 已移除原代码末尾多余的闭合大括号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:09:04