提问人: 提问时间:8/25/2023 更新时间:8/25/2023 访问量:24
将 JavaScript 对象中的值添加为元素上的类
Adding values from a JavaScript object as classes on an element
问:
在 JavaScript 中,我如何获取对象的值并将每个值作为单独的类添加到 DOM 中的元素上?
例如,假设我有这个对象:
const METADATA = {
foo: 'test1',
bar: 'test2'
};
我想将此对象中存在的值添加为标签上的两个独立类。<html>
为了实现这一点,我尝试在jQuery方法中指定METADATA对象的属性:.addClass
$('html').addClass( METADATA["foo","bar"] );
但这只将对象的最后一个值添加为标签上的类,这让我相当困惑。<html>
有什么想法吗?
答:
1赞
T.J. Crowder
#1
METADATA["foo","bar"]
只获取属性的值,因为你使用的是逗号运算符,这有点奇怪:它计算它的第一个操作数 (),扔掉该值,然后计算它的第二个操作数 () 并将其作为结果。所以它与 or 相同(因为评估没有副作用)。bar
"foo"
"bar"
METADATA["bar"]
METADATA.bar
"foo"
相反,您需要单独获取每个值:
$('html').addClass([METADATA.foo, METADATA.bar]);
这之所以有效,是因为允许您提供要添加的类名数组。 (或者,只需调用两次。addClass
addClass
或者不带 jQuery:
document.documentElement.classList.add(METADATA.foo, METADATA.bar);
方法允许您指定多个类名以添加为离散参数。add
DOMTokenList
评论
0赞
8/25/2023
感谢您的澄清。我以为这只会同时得到两者,但我想不是。$('html').addClass( METADATA["foo","bar"] );
METADATA.foo
METADATA.bar
评论