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

JavaScript中如何获取并输出带连字符的HTML标签属性值?

解决带连字符的HTML属性获取与修改问题

问题原因

你用el.this-client-token报错,核心原因是JavaScript点语法访问对象属性时,属性名不能带连字符。代码会被解析成el.this - client - token,把client和token当成未定义的变量,所以抛出Uncaught ReferenceError: client is not defined。

两种可行解决方法

方法1:用标准的属性操作API

getAttribute()和setAttribute()是操作HTML元素属性的通用方法,不管属性名有没有特殊字符都能正常工作:

// 获取属性值
var el = document.getElementById("mysdk");
var token = el.getAttribute("this-client-token");
console.log(token);

// 修改属性值
el.setAttribute("this-client-token", "你的新token内容");

方法2:用方括号语法访问属性

JavaScript允许用方括号包裹字符串形式的属性名,支持带连字符的名称:

// 获取属性值
var el = document.getElementById("mysdk");
var token = el["this-client-token"];
console.log(token);

// 修改属性值
el["this-client-token"] = "你的新token内容";

额外建议:规范自定义属性

如果是自己定义的属性,推荐遵循HTML5标准用data-*前缀(比如把this-client-token改成data-client-token),这样可以通过dataset更便捷地访问,还能自动做驼峰命名转换:

<script id="mysdk" src="https://www.myscript.com/sdk/js?currency=EUR" data-client-token="nsiYXV0aG9yaXphdGlvbkZpbmdlcnByaW50IjoiZGUyYjM4N2FiZWV"></script>
// 获取属性值
var token = el.dataset.clientToken;
// 修改属性值
el.dataset.clientToken = "你的新token内容";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:01:30