首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我是如何循环在Polymer1.0元素中遍历一组DOM元素的?

我是如何循环在Polymer1.0元素中遍历一组DOM元素的?
EN

Stack Overflow用户
提问于 2015-07-24 11:19:33
回答 4查看 1.8K关注 0票数 1

我试图遍历一组静态的纸质复选框元素,但是我的代码在以下方面失败了:

"Uncaught :this.querySelectorAll(.).forEach不是函数“

相关的代码行是:

代码语言:javascript
运行
复制
this.querySelectorAll('paper-checkbox').forEach(function(cb) {

我确信这是我的愚蠢-但在选择和/或迭代所选(静态)复选框时,我做错了什么呢?

我实际上是在寻找替代JQuery的.each()函数的Polymer1.0。

非常感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-07-24 12:08:17

谢谢你的回复。我刚刚找到了解决方案,这里

而不是:

代码语言:javascript
运行
复制
this.querySelectorAll()

我应该用:

代码语言:javascript
运行
复制
Polymer.dom(this).querySelectorAll()

现在工作得很好!

再次感谢。

票数 2
EN

Stack Overflow用户

发布于 2015-07-24 12:11:55

问题是this.querySelectorAll('paper-checkbox')返回一个NodeList,而不是数组。它们看起来很相似,但它们是不同的。NodeList的原型中没有foreach方法。

一个简单的解决方案是将Nodelist转换为如下数组:Array.prototype.slice.call(document.querySelectorAll('paper-checkbox'))

我建议您阅读MDN中有关此主题的这篇文章

票数 2
EN

Stack Overflow用户

发布于 2015-07-24 11:30:53

这是因为

代码语言:javascript
运行
复制
this.querySelector('paper-checkbox') 

是空的。

我认为你需要进入阴影根来得到元素。

代码语言:javascript
运行
复制
 this.shadowRoot.querySelectorAll('paper-checkbox')

添加:

代码语言:javascript
运行
复制
this.shadowRoot.querySelectorAll('paper-checkbox').array().forEach(function(cb) {
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31609227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档