Javascript ';document.getElementById';仅适用于index.html

Javascript ';document.getElementById';仅适用于index.html,javascript,jquery,html,css,getelementbyid,Javascript,Jquery,Html,Css,Getelementbyid,最终目标是循环浏览博客页面上的照片。似乎“document.getElementById().src”是一个不错的方法 问题:为了确保javascript代码成功链接到博客页面,我在script.js文件中尝试了以下测试: document.getElementById('testID').innerHTML = "Running test"; 在我的.html文件中: <div id="testID"></div> 为什么会这样?当前页面中的Javascript只能

最终目标是循环浏览博客页面上的照片。似乎“document.getElementById().src”是一个不错的方法

问题:为了确保javascript代码成功链接到博客页面,我在script.js文件中尝试了以下测试:

document.getElementById('testID').innerHTML = "Running test";
在我的.html文件中:

<div id="testID"></div>

为什么会这样?

当前页面中的Javascript只能访问当前加载到浏览器中的页面中的HTML元素

更具体地说,
document.getElementById()
只在当前网页的文档中搜索匹配的元素。它不会搜索任何其他页面,当然也不会搜索服务器上未加载到浏览器中的其他文件。“当前网页”是指从浏览器栏中的当前URL加载的HTML

当一个网页在浏览器窗口中不再可见(例如,它被其他页面替换)时,它就消失了,任何Javascript都无法访问它。在某些特定情况下,您可以访问加载到其他选项卡或其他框架中的文档(遵循相同来源的安全规则,并需要不同的访问方法)

此外,对网页的任何更改在浏览器中都不会持久。一旦网页不再加载到活动浏览器窗口中,它就会消失,再次重新加载它将加载该文档的原始未修改版本


如果希望一个页面中的相同代码在另一个页面中运行,则必须在另一个页面中包含相同的代码。您可以将代码放入自己的页面中,然后在每个页面中使用
标记,以使相同的代码加载到每个页面。如果正确解释问题,请尝试使用
.load()


$(“#容器”).load(“/blog/blog_1.html#testID”)

您只能在DOM中获取渲染对象的元素。所以如果你的其他页面没有加载。。。无法使用document.getElement。。。或者任何其他插件是的,我最初写“”时没有意识到stackoverflow会将其视为实际的HTML,而不是将其显示为文本。我删除了括号并将其斜体化来编辑它。文档不知道或不关心html来自哪个文件。。。它只知道存在什么,不完全清楚你的问题是什么is@Matte3o从头开始,在更高的层次上解释你想要实现的目标如果你只是描述了你从一开始就想要实现的目标,并把它放到你的问题中,那么你会在几分钟内得到答案。当你描述实际问题时,这个网站的效果要好得多,而不仅仅是描述你尝试的(有时是错误的)解决方案。这样,我们就可以为您的实际问题提供最好的解决方案。@Matte3o-在您继续披露您试图解决的实际问题时,在我的回答中又添加了几项内容。谢谢@jfriend00。谢谢你的详尽回答!我认为我的问题措词不当,肯定被误解了。我不尝试访问未加载的页面。我想访问加载的页面。@Matte3o-当浏览器加载页面时,它会自动运行该页面中的Javascript。要在该页面中运行的任何脚本都必须位于该页面的源代码中。我仍然不知道你的问题到底是什么。我试图改写。我想我只是有一些奇怪的错误,我认为这些错误与HTML文件的位置有关,但实际上是另外一回事。@Matte3o-可能在运行页面元素之前,您运行代码的时间太早了`4.
$(document).ready(function(){ ... });