2012-02-28 8 views
0

javascript/google closureを使用してステートメント内のスクリプトを実行する場合に、クラスが存在するかどうかをテストします。問題は私の現在のコードは未定義を返すので誰かが私に助言を与えることができるかどうか疑問に思っていたのですか?javascriptのif文を使用したアドバイス

if (goog.dom.classes.has('html', 'pe')) { 

    var searchCtn = goog.dom.getElementsByClass('search'); 
    var headerWrapper = goog.dom.getElementByClass('header'); 
    goog.dom.append(headerWrapper,searchCtn); 
} 
+1

を返して何? –

+0

基本的に私はコンソールでこれを実行すると、HTMLにクラス.peがあり、.searchクラスが.headerに追加されていないことがわかっています。 ifを使わずにコンソールでスクリプトを実行すると、.searchが追加されますか? – styler

+0

'var headerWrapper = goog.dom.getElementByClass( 'header');'で 's'が見つからないようです。これにより、追加機能が実行されないようにする例外が発生します。 –

答えて

1

'html'は有効な要素オブジェクトではありません。 document.documentElementを渡すか、googleを使用してclassnameで要素を取得してみてください。場所を正確に未定義

if (goog.dom.classes.has(document.documentElement, 'pe')) {  
    var searchCtn = goog.dom.getElementsByClass('search');  
    var headerWrapper = goog.dom.getElementByClass('header');  
    goog.dom.append(headerWrapper,searchCtn); 
} 

または

if(goog.dom.getElementsByClass('pe')){ 
    var searchCtn = goog.dom.getElementsByClass('search');  
    var headerWrapper = goog.dom.getElementByClass('header');  
    goog.dom.append(headerWrapper,searchCtn); 
}