Javascript元素标记名称未定义

时间:2014-12-05 04:51:50

标签: javascript jquery html css arrays

所以我用Javascript并不是那么好,所以我马上就把这个放到了前面。话虽如此,在询问之前,我已经尽可能多地查看了这个特定问题,但这些建议并没有解决我的问题。我最终试图从与主页面相同的域中的iframe窗口中拉出所有链接。然后我想基本上搜索该链接数组以使其与当前页面匹配,以触发对html代码的CSS修改(此部分尚未编码,仅供参考)。所以这是我到目前为止的部分:旁注:确认是在那里调试代码并试图告诉我它失败的地方以及我的查询返回的内容,当它完成时它们不会明显停留。我感谢任何可以帮助我解决这个问题的建议!

<script type="text/javascript">
// main is the iframe that I'm trying to search for a tags
document.getElementById("main").onload = function() {
	confirm("test");
	var main = document.getElementById("main");
	var anchors = main.contentWindow.document.getElementsByTagName('a');
	confirm(anchors[1]);
	for (var i in anchors) {
		confirm(anchors[i].getAttribute("href"));
	}
};
</script>

2 个答案:

答案 0 :(得分:1)

我为你的工作创建了一个plunker。我认为它在您的文件中放置代码会导致问题。

<iframe id="main" src="content_if.html"></iframe> 
 <script>
   // main is the iframe that I'm trying to search for a tags
  document.getElementById("main").onload = function() {
    confirm("test");
    var main = document.getElementById("main");
    var anchors = main.contentWindow.document.getElementsByTagName('a');
    confirm(anchors[1]);
    for (var i in anchors) {
        confirm(anchors[i].getAttribute("href"));
    }
  };

 </script>

您应该使用jQuery以跨浏览器的方式执行此操作。在页面中包含jQuery

<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>

并关注this post

答案 1 :(得分:0)

similar post这样做,我同意Mohamed-Yousef。如果您可以使用jquery,那么您应该这样做!

$("#main").contents().find("a").each(function(element) {
    // "each" will iterate through every a tag and inject them as the "element" argument
    // visible in the scope of this anonymous function
});

修改 你必须包括

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

在引用$变量的代码上方。还有其他方法可以使用jQuery,但这可能是最简单的。