Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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选择器吗?_Javascript_Arrays_Loops_Iframe_Selector - Fatal编程技术网

我可以从元素数组中创建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


我们应该做到这一点。如果任何组件不存在,则返回null

Yes。为了清晰起见,我添加了MDN链接。是的。为了清晰起见,我添加了MDN链接。我也喜欢这个!谢谢我也喜欢这个!谢谢