Javascript函数创建元素条件

Dav*_*cia 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>
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:Uncaught Type错误:无法调用方法追加子"null"

任何人都可以帮我解决它

更新

这是更好更好的代码,但是文本只能在源代码中看到,而不能在网站上看到.

<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>
Run Code Online (Sandbox Code Playgroud)

Ble*_*der 5

你使用jQuery的类选择器:

$('.wp_bannerize')
Run Code Online (Sandbox Code Playgroud)

但是具有本机DOM方法的ID选择器:

document.getElementById("wp_bannerize");
Run Code Online (Sandbox Code Playgroud)

他们不一样.要修复你的脚本,替换getElementById('wp_bannerize')getElementsByClassName('wp_bannerize')[0],或者只是用jQuery来做:

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

  • @JoseDavidGarciaLlanos javascript是这门语言.除了它们是有效的标识符之外,它对`$`或`document`一无所知.浏览器环境(仍然称为"javascript")定义了`document`及其各种方法.问题是,各种浏览器在其环境中定义了各种方法.因此,您必须处理不遵循规范的浏览器(\*cough\*IE\*cough\*).JQuery是一个用于javascript的库.它包含浏览器提供的DOM API,并提供名称更短,更一致且跨浏览器兼容的方法. (2认同)