Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何向聚合中的所有自定义元素添加相同的css类。_Javascript_Html_Polymer_Polyfills - Fatal编程技术网

Javascript 如何向聚合中的所有自定义元素添加相同的css类。

Javascript 如何向聚合中的所有自定义元素添加相同的css类。,javascript,html,polymer,polyfills,Javascript,Html,Polymer,Polyfills,我试过了 <template> <link rel="import" href="ele-css.html"> ...... <template> ...... 还尝试在父元素中添加css并继承该元素。您考虑过在纯JS中这样做吗 var elems=document.querySelectorAll('myelement'); 对于(变量i=0;i

我试过了

<template>
        <link rel="import" href="ele-css.html">
      ......
<template>

......

还尝试在父元素中添加css并继承该元素。

您考虑过在纯JS中这样做吗

var elems=document.querySelectorAll('myelement');
对于(变量i=0;i

在js中添加类:

向元素的影子dom中的所有元素添加类与向文档中的所有元素添加类没有什么不同。区别在于您使用的是什么DOM树:)


ready()

ready: function() {
  var els = this.shadowRoot.querySelectorAll('*');
  Array.prototype.forEach.call(els, function(el, i) {
    el.classList.add('someClass');
  });
}
我的下一个问题是你为什么要这样做?如果是为了设计样式,那么在元素本身上创建一个类会更好、性能更好。然后,您可以使用它作为样式挂钩来设置阴影dom中元素的样式

:host(.someClass) * {
  ...
}

你能澄清一下你想做什么吗?您是否正在尝试将css类添加到元素的所有实例、其阴影dom中的所有元素…?其阴影dom中的所有元素。为什么不使用
elems[i].classList.add('someClass')
?您不能像上面给出的那样将类赋予自定义元素的阴影dom。例如,我想在自定义元素的模板中为我的div赋予类。
this.shadowRoot.querySelectorAll('myelement').array().forEach(函数(e){e.classList.add('someClass');})
。。。尽管几乎可以肯定有更好的方法来达到你想要的效果。[注意:
array()
函数随Polymer一起提供,如果您不使用Polymer,您可以如上所述使用for循环].Fwiw,在Polymer中,您可以执行
els.array().forEach…
抱歉,但我想知道,如果我有10个diff.custom元素,我想对所有10个diff.custom元素应用相同的css,例如字体颜色比什么?
:host(.someClass) * {
  ...
}