2012-07-06 63 views
0

我通过互联网和本网站搜索,但还没有找到答案。我想运行一个javascript代码,它将通过我的网站上的文章,并选择打印其中的一些&。该脚本效果很好,当我这个文章后,运行它:在网站的另一个地方运行java脚本

[关于智能手机的文章]

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

显然,它工作正常,因为脚本有什么要搜索 - 文章已经出现在网站上,所以JavaScript可以采取一些元素。

但我想颠倒顺序:

[显示一些关于智能手机出现的文章]

我认为我应该后运行该脚本[关于智能手机有显示的相关文章]加载的文章并不改变元素的位置,这是由脚本打印的。我可以这样做:绝对;但对我来说看起来不太优雅,我希望有另一种方法来解决我的问题。我在另一个地方尝试了body load和running函数,但是我没有做到这一点。

谢谢你的任何帮助和建议:)

+0

如果你是开放的使用jQuery,具有$您的脚本(文件)。就绪(函数(){/ *脚本* /});将最有可能的伎俩。 – Angel 2012-07-06 08:55:53

回答

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编程的好教程或者一本书。

+0

非常感谢您的建议 - 它为我工作!我刚刚开始学习javascript,并且document.write是我已经学过的,所以我尝试使用。我会更深入地研究js,当然我会开始从更好,更先进的资源中学习。 :) – ignacy130 2012-07-06 09:54:16

0

这是不完全清楚你正在尝试与你的脚本来执行。脚本无法引用在脚本之后加载的DOM元素。所以,如果这就是你想要做的事情,那么你的脚本必须放在那些DOM元素已经被加载之后,或者它必须等到这些元素在执行之前被加载。

如果您只是尝试对现有DOM元素进行重新排序,则可以使用removeChildappendChildinsertBefore重新定位页面布局流程中的DOM元素以更改排序顺序。

如果您希望观众看不出原来的顺序,那么你可以设置一个初始的CSS规则,因此文章最初是不可见的,那么你可以重新排列它们,使它们可见。观众只会看到最后的订单。

如果你想更具体的建议,我建议您在实际代码,所以我们可以看到它实际上是这样,我们才能更具体的建议。

+0

感谢您的关注,这些是一些很棒的提示,希望我有机会使用它们:)对不起,也许我应该写得更清楚,但现在我的问题已经在Daniel Baulig的帮助下解决了。 – ignacy130 2012-07-06 09:57:12