JavaScript源代码中添加变量的问题
issue with add variable in javascript source
<script type="text/javascript">
window.onload = function () {
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = "http://www.example.com/abc/abc.js?timestamp=" + new Date().getTime();
s.id = 'help-wall';
s.data-campaign-id ='6';
document.body.appendChild(s);
}
</script>
在 s.data-campaign-id 中显示错误。请帮忙
连字符是 Javascript 标识符中的非法字符,因此不能与对象点语法一起使用。您必须改用方括号语法:
s['data-campaign-id'] = '6';
Alex 在评论中提出了非常有效的观点,即这不会注册为数据属性,只会注册为节点的属性。如果您希望它成为一个属性,则需要setAttribute
:
s.setAttribute('data-campaign-id', '6');
无需对其他属性执行此操作,因为这些属性映射到相应的属性。因为您使用的是自定义属性,所以它没有。
正如其他人所指出的,您显然不能使用点表示法来表示名称不是有效标识符的属性和属性。
但是,data-*
属性是一种特例。在这种情况下,您可以轻松地说
s.dataset.campaignId = '6';
在内部,数据集属性名称在驼峰大小写 (campaignId
) 和破折号形式 (data-campaign-id
) 之间映射,以便于设置,就像设置s.style.fontSize = "10px";
一样。
请注意,IE<=10 不支持s.dataset
,因此您必须回退到 s.setAttribute('data-campaign-id', ...)
。
相关文章:
- 将PHP变量传递给jQuery时遇到问题
- 参数变量出现ngTable指令问题
- 为变量分配多个nodejs导出返回值时出现问题
- 如何处理流星变量&对miniMongo有问题
- Jquery变量类型问题
- 带有.css()串联问题的jQuery变量
- JavaScript变量引用数组时出现问题
- 将一个php变量从js传递到php,并返回内容问题
- 简单的变量问题
- 可以't在quizz页面范围问题上用最终分数更新变量
- array_push平面数组问题-需要能够向数组中添加多个变量
- 尝试将变量传递到对象中时的作用域问题'的方法构造函数
- Javascript函数变量传递语法问题
- 访问带有变量的Object元素时出现问题
- 将 Ajax 数据分配给全局变量时出现问题
- JavaScript/jQuery中的基本数学问题-变量记忆值
- 简单的jQuery变量问题-变量冲突
- Javascript作用域问题:变量未被识别
- Javascript作用域问题-变量未定义
- 目标转换问题-变量修改