2013-04-02 57 views
0

我沒有任何線索爲什麼這個解決方案不起作用... 有人可以幫忙嗎?Mootools解決不起作用

下面的代碼:

<html> 
    <head> 
     <script type="text/javascript" src="js/mootools-core-1.4.5-full-nocompat.js"></script> 
     <script>alert($('div#root'));</script> 
    </head> 
    <body> 
     <div id="root"></div> 
    </body> 
</html> 

alert函數返回NULL,而不是「對象htmldivobject」

回答

2

儘量只$('root')代替。在MooTools中單一$ 等效 similardocument.getElementById$$可能是您要查找的內容,如果您想使用CSS選擇器。

看到這裏的區別:

+1

它就像LIKE'document.getElementById' - 不完全等價。在IE> = 8中設置元素存儲,元素uid並將Element.prototype方法複製到實際元素對象。使用'document.getElementById'代替將不起作用 –

+0

謝謝@DimitarChristoff,更正了我的答案。 – Alex

+0

還有'document。 id'方法,它也是'$',你可以用同樣的方法。 –

1

在警報()的東西運行時,頁面的其餘部分尚未加載/已解析/已處理,因此#root尚不存在於DOM中。您需要使用domready中()功能暫停你的代碼,直到DOM的滿載:

<script> 
window.addEvent('domready', function() { 
    alert(blah blah blah); 
}); 
</script> 
+0

這就是我在首位想到過,但它仍然無法正常工作。 – marius

+0

OP:您還可以將腳本移動到頁面底部 - 它們將訪問位於它們之前的任何DOM節點。另外,不要做'$(「dom#root」)' - $就像document.getElementById - '$('root')'會工作。 ids無論如何都是獨一無二的,因此錨定沒有任何意義。多個els是$$(),這是你需要適當的選擇器語法的地方。 mootools不同於jquery :) –

+0

多數民衆贊成它,我會勾選你的答案作爲正確的,但不幸的是你只是提出了一個評論:(Thx很多! – marius