0

我也搜索了互联网和这个网站,但没有找到答案。我想运行一个 javascript 代码,它将浏览我网站上的文章并选择和打印其中的一些。当我在这篇文章之后运行它时,该脚本运行良好:

[关于智能手机的文章]

[显示(打印)一些关于智能手机的文章的脚本]

显然,它可以正常工作,因为脚本有要搜索的内容 - 文章已经出现在站点上,所以 javascript 可以获取一些元素。

但我想颠倒顺序:

[在那里显示一些关于智能手机的文章]

[在那里显示有关智能手机的文章]

我假设我应该在加载文章后运行脚本,而不是更改由脚本打印的元素的位置。我可以用 position: absolute; 但这对我来说看起来不太优雅,我希望有另一种方法来解决我的问题。我在另一个地方尝试了 body onload 和 running 功能,但我没有成功。

感谢您的任何帮助和建议:)

4

2 回答 2

0

目前尚不完全清楚您要使用脚本做什么。脚本不能引用在脚本之后加载的 DOM 元素。所以,如果这就是你想要做的,那么你的脚本必须在那些 DOM 元素被加载之后放置,或者它必须等到这些元素被加载后再执行。

如果您只是尝试重新排序现有的 DOM 元素,那么您可以使用removeChildandappendChildinsertBefore在页面布局流中重新定位 DOM 元素以更改排序。

如果您希望查看者看不到原始顺序,则可以设置初始 CSS 规则,使文章最初不可见,然后您可以重新排序并使其可见。查看者只会看到最终订单。

如果您需要更具体的建议,我会建议您使用您的实际代码,以便我们可以看到它实际上正在这样做,以便我们可以提供更具体的建议。

于 2012-07-06T08:56:48.230 回答
0

我想您正在使用 document.write 生成 HTML 代码以重新显示一些文章。你不应该使用 document.write。相反,将脚本放在文档的最后,以确保所有 HTML 元素都已经存在于 DOM 中。然后创建一个新的 HTMLNode,例如一个 div,并将其放在您想要的位置,或者从 DOM 中选择一个并将您的新 HTML 放入该节点(最简单的方法是设置innerHTML)。例如:

<body>
  <div id="some_articles">
  </div>
  <div id="all_articles">
    <!--- here is the code for all articles -->
  </div>
  <script>
    var div = document.getElementById('some_articles');
    div.innerHTML = '<!-- code for some of the articles -->';
  </script>
</body>

然而,这是非常基本的 Javascript 知识。您真的应该阅读一本关于 Javascript 和 DOM 编程的好教程或书籍。

于 2012-07-06T09:00:00.157 回答