2013-07-05 41 views
0

我不是程序員,但是我一直在試着看類似的樣本來想出我自己的版本,這是我正在嘗試做的。Javascript函數創建元素條件式

<script type="text/javascript"> 
    var advertContainer = null; 
    var adblocked = null; 

function Checkads() { 
    if ($('.wp_bannerize').height() == 0) { 
    var adblocked = document.createElement("span"); 
    var adnotice = document.createTextNode("Please support our website by enabling ads"); 
    adblocked.appendChild(adnotice); 
    var advertContainer = document.getElementById("wp_bannerize"); 
    advertContainer.appendChild(adblocked); 
    }; 
    } 

$(document).ready(function(){ 
    Checkads(); 
}); 
</script> 

但是我收到一個錯誤:未捕獲的類型錯誤:無法調用追加子「空」

誰能幫助我解決這個問題

更新

這裏是更好更好的代碼,但是文本只能在源代碼中顯示,而不能在網站上顯示。

<script type="text/javascript"> 

function checkads() { 
    if ($('.wp_bannerize').height() == 0) { 
    $('<div id="adnotice">').text('Please support our website by enabling ads').appendTo('.wp_bannerize'); 
    }; 
    } 

$(document).ready(function(){ 
    checkads(); 
}); 
</script> 
+1

是否'的document.getElementById( 「wp_bannerize」)'存在嗎? –

+2

該消息表示advertContainer爲空,意味着沒有元素以「wp_bannerize」的id存在。 –

+0

是的,它存在但不是一個ID,其實際類 –

回答

5

您使用類選擇使用jQuery:

$('.wp_bannerize') 

但隨着本地DOM方法的ID選擇:

document.getElementById("wp_bannerize"); 

他們是不一樣的。要解決你的腳本,與getElementsByClassName('wp_bannerize')[0]更換getElementById('wp_bannerize'),或者只是做它用jQuery:

if ($('.wp_bannerize').height() == 0) { 
    $('<span>').text('Please support our website by enabling ads').appendTo('.wp_bannerize'); 
} 
+0

用類選擇器替換getElementBy它? – VeXii

+0

請注意,IE8中不存在'getElementsByClassName'。所以,堅持jQuery。 –

+0

@JanDvorak:哇,我完全忘了那個。 – Blender