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

如何使用dojo/query选取指定索引类名元素替代getElementsByClassName

问题原因

你写的dojo.query选择器语法不符合CSS多类选择器规则:

  • 原生document.getElementsByClassName("dijitReset dijitInputInner")的逻辑是匹配同时拥有dijitReset、dijitInputInner两个类的DOM元素
  • 你写的.dijitReset dijitInputInner是CSS后代选择器逻辑,既没有给第二个类加类选择器标识.,又加了空格分隔,会被解析为「匹配类为dijitReset的元素的后代中,标签名为dijitInputInner的元素」,和需求逻辑完全不匹配,自然无法得到正确结果。

修正写法

使用CSS多类选择器语法,多个类名直接连写,每个类名前都加.且中间不加空格即可:

var name = dojo.query(".dijitReset.dijitInputInner")[1];

补充说明

dojo.query返回的是类数组的NodeList对象,直接通过下标取值的逻辑和原生getElementsByClassName返回的HTMLCollection用法一致,只要页面中符合条件的元素数量≥2,就能拿到和原代码完全相同的元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:24:03