Javascript 元素标签名称未定义

Javascript element tag name undefined

本文关键字:未定义 标签名 元素 Javascript      更新时间:2023-09-26

所以我对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>

我已经为您创建了一个 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>

并关注这篇文章

有一个关于这样做的类似帖子,我同意穆罕默德-优素福的观点。如果你可以使用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,但这可能是最简单的方法。