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

如何用原生JavaScript动态获取指定div元素的自定义属性值

实现方案

完全可以通过原生JavaScript动态读取对应属性值,无需硬编码。

针对现有代码的直接实现

你当前的HTML结构如下:

<div class="scontent" scountry="en-GB" snumber="22000"></div>

直接通过原生API获取元素、读取属性即可,替换原来硬编码的脚本内容:

// 匹配class为scontent的div元素
const targetDiv = document.querySelector('.scontent');
// 读取元素上的自定义属性
const countryVal = targetDiv.getAttribute('scountry');
const numberVal = targetDiv.getAttribute('snumber');
// 拼接输出,和原有硬编码效果完全一致
document.write(`${numberVal}${countryVal}`);

注意事项

  • 要确保JS执行时,目标div已经完成渲染:可以把脚本标签放到div元素之后,或者监听DOMContentLoaded事件后再执行读取逻辑,避免获取元素为null报错。监听加载的示例代码:
document.addEventListener('DOMContentLoaded', function() {
  const targetDiv = document.querySelector('.scontent');
  const countryVal = targetDiv.getAttribute('scountry');
  const numberVal = targetDiv.getAttribute('snumber');
  document.write(`${numberVal}${countryVal}`);
})

规范写法建议

如果可以调整HTML结构,更推荐使用HTML标准规定的data-*格式自定义属性,兼容性更好、读取更简洁,也不会和未来新增的原生属性冲突。
调整后的HTML:

<div class="scontent" data-scountry="en-GB" data-snumber="22000"></div>

对应的读取代码可以直接通过元素自带的dataset属性获取,不需要调用getAttribute:

const targetDiv = document.querySelector('.scontent');
// dataset会自动把data-后面的属性名转为对象键值
const { scountry, snumber } = targetDiv.dataset;
document.write(`${snumber}${scountry}`);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 05:09:25