我可以从元素数组中创建Javascript选择器吗?
我正在通过我可以从元素数组中创建Javascript选择器吗?,javascript,arrays,loops,iframe,selector,Javascript,Arrays,Loops,Iframe,Selector,我正在通过id和src管理一个iFrame树(全部嵌套在一个页面上),因此对于给定的src,我可以返回指向此iFrame的元素数组,如下所示: ["document", "123123", "dasd321"] 由于数组中的元素数量是动态的,我现在想构造一个选择器来检索要向其发送postMessage的窗口。所以我需要这样的东西: document .getElementById("123123").contentWindow .getElementById("dasd321"
id
和src
管理一个iFrame树(全部嵌套在一个页面上),因此对于给定的src
,我可以返回指向此iFrame的元素数组,如下所示:
["document", "123123", "dasd321"]
由于数组中的元素数量是动态的,我现在想构造一个选择器来检索要向其发送postMessage的窗口。所以我需要这样的东西:
document
.getElementById("123123").contentWindow
.getElementById("dasd321").contentWindow
...
... postMessage({"foo":"bar"}, window.location.href);
要动态地构造
问题:是否可以通过在数组上循环来生成动态选择器?如果是或不是,我将如何着手
谢谢 这可以通过以下方式轻松完成:
["document", "123123", "dasd321"].forEach(function(o){
document.getElementById(o).contentWindow //and so on
});
这可以通过以下方式轻松完成:
["document", "123123", "dasd321"].forEach(function(o){
document.getElementById(o).contentWindow //and so on
});
您可以使用
querySelectorAll
:
var elements = ['#document', '#123123', '#dasd321'];
elements = document.querySelectorAll(elements.join(','));
[].forEach.call(elements, function(element) {
// do something with `element`
});
您可以使用
querySelectorAll
:
var elements = ['#document', '#123123', '#dasd321'];
elements = document.querySelectorAll(elements.join(','));
[].forEach.call(elements, function(element) {
// do something with `element`
});
我们应该做到这一点。如果任何组件不存在,则返回null
我们应该做到这一点。如果任何组件不存在,则返回nullYes。为了清晰起见,我添加了MDN链接。是的。为了清晰起见,我添加了MDN链接。我也喜欢这个!谢谢我也喜欢这个!谢谢