如何使用setAttribute更新对象中的一个值
How do I update one value within an object using setAttribute?
我有一个元素,它包含一个名为"sound"的属性。此声音属性的值是一个对象。此对象中的属性之一是"体积"。
换句话说:
<a-entity position='0 0 0' sound='src: url; on: click; volume: 2.0;'></a-entity>
所以它是这样的:
{
position: '0 0 0',
sound: {
src: 'url',
on: 'click',
volume: '2.0'
}
}
我正在使用setAttribute更新卷属性,但我不知道是否有一种有效的方法可以只针对一个属性而不更改对象中的其他属性。
基本上,这会替换声音对象并删除所有未指定的属性(删除属性上的src and):
element.setAttribute('sound', {
volume: '4'
});
我不想替换整个对象。我只想为一个属性替换一个值。有最好的方法吗?
您可以使用文档中的setAttribute的3参数版本:https://aframe.io/docs/core/entity.html#Updating-多属性组件数据
具体来说,你可以做一些事情,比如:
element.setAttribute("sound", "volume", "4");
您可以获取与属性相对应的对象,并只替换所需的属性。
类似这样的东西:
var data = element.getAttribute('sound');
data.volume = '4';
element.setAttribute('sound', data);
编辑
如果你像真正的JS对象一样在html中设置数据,你可以这样做:
var newData = JSON.parse(element.getAttribute('sound'));
newData.volume = 4;
element.setAttribute('sound', JSON.stringify(newData));
这是一个小提琴
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 表追加而不附加最后一个元素
- 我如何找到一个句子中的所有空格并替换忽略它们
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用类从一个标记中双击事件
- Javascript,访问一个主要对象模块模式中的每个对象
- Javascript 错误:catChildNotes[y].setAttribute 不是一个函数
- 如何使用setAttribute更新对象中的一个值
- element.setAttribute 不是一个函数
- 会话Setattribute只从循环中获取最后一个值
- 聚合物:this.setAttribute()不是一个函数