我试图遍历一组静态的纸质复选框元素,但是我的代码在以下方面失败了:
"Uncaught :this.querySelectorAll(.).forEach不是函数“
相关的代码行是:
this.querySelectorAll('paper-checkbox').forEach(function(cb) {
我确信这是我的愚蠢-但在选择和/或迭代所选(静态)复选框时,我做错了什么呢?
我实际上是在寻找替代JQuery的.each()函数的Polymer1.0。
非常感谢!
发布于 2015-07-24 12:08:17
谢谢你的回复。我刚刚找到了解决方案,这里。
而不是:
this.querySelectorAll()
我应该用:
Polymer.dom(this).querySelectorAll()
现在工作得很好!
再次感谢。
发布于 2015-07-24 12:11:55
问题是this.querySelectorAll('paper-checkbox')
返回一个NodeList,而不是数组。它们看起来很相似,但它们是不同的。NodeList的原型中没有foreach
方法。
一个简单的解决方案是将Nodelist转换为如下数组:Array.prototype.slice.call(document.querySelectorAll('paper-checkbox'))
我建议您阅读MDN中有关此主题的这篇文章。
发布于 2015-07-24 11:30:53
这是因为
this.querySelector('paper-checkbox')
是空的。
我认为你需要进入阴影根来得到元素。
this.shadowRoot.querySelectorAll('paper-checkbox')
添加:
this.shadowRoot.querySelectorAll('paper-checkbox').array().forEach(function(cb) {
https://stackoverflow.com/questions/31609227
复制相似问题