当你在这样的页面中循环遍历所有iframe:
HTML:
<ul>
<li id="a"><iframe src="..." /></li>
<li id="b"><iframe src="..." /></li>
<li id="c"><iframe src="..." /></li>
</ul>
JS:
for (var i = 0; i < window.frames.length; i++) {
if (window.frames[i].getName() == selector) {
frame_item = ????
break;
}
}
如何获取&lt;的DOM元素?的iframe&GT ;?或者按照示例,我如何获得&lt;的ID?李&GT;循环中的项目?
答案 0 :(得分:5)
更新回答。
window.frames直接引用IFRAME上下文(iframe的window对象)。 AFAIK你不能通过这种方式获得IFRAME对象。您可以通过 window.frames [0] .myVar 访问IFRAME的变量。
要使用所有IFRAME节点/对象:
var iframes = document.getElementsByTagName('iframe'); //all iframes on page
for(var i=0; i<iframes.length; i++){
alert(iframes[i].parentNode.id); // LI.id
alert(iframes[i].contentWindow.myVar); //iframe's context
}
或者,您可以将id分配给UL元素和
var ul = document.getElementById('ul_id');
var iframes = ul.getElementsByTagName('iframe'); //all iframes in UL
...
答案 1 :(得分:1)
使用jquery从iframe中获取元素:
$("iframe_id_or_class").contents().find(*element*)
<强>更新强>
$("ul li").each(function(){
$("iframe", this).contents().find(*element*);
});
答案 2 :(得分:0)
我强烈建议使用JQuery Javascript库来编写Javascript,因为它使整个过程变得更容易,但是对于选择器来说非常容易,因为你可以使用CSS选择器。 所以在这种情况下你会使用
var id = [];
$("ul li").each(function(){
id.push($(this).attr("id"));
});
修改强> 的
这是你需要的吗?
$("iframe").each(
function(){
if($(this).attr("name")==desired_name)
alert($(this).parent());
}
);