2012-07-06 65 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