我正在id
和src
管理iFrames树(全部嵌套在页面上),因此对于给定的src
,我可以返回导致此内容的元素数组iFrame,就像这样:
["document", "123123", "dasd321"]
由于我的数组中的元素数是动态的,我现在想构建一个选择器来检索发送postMessage的窗口。所以我需要这样的东西:
document
.getElementById("123123").contentWindow
.getElementById("dasd321").contentWindow
...
... postMessage({"foo":"bar"}, window.location.href);
动态构建。
问题:
是否有可能通过循环数组生成动态选择器?如果是,如果没有,我将如何解决这个问题?
谢谢!
答案 0 :(得分:1)
这可以通过以下方式轻松完成:
["document", "123123", "dasd321"].forEach(function(o){
document.getElementById(o).contentWindow //and so on
});
答案 1 :(得分:1)
您可以使用querySelectorAll
:
var elements = ['#document', '#123123', '#dasd321'];
elements = document.querySelectorAll(elements.join(','));
[].forEach.call(elements, function(element) {
// do something with `element`
});
答案 2 :(得分:1)
target = ["document", "123123", "dasd321"].reduce (function (tgt, o) {
return tgt && tgt.getElementById (o);
}, document);
应该做的伎俩。如果您的任何组件不存在,则返回null