jQuery:$ j('body')。append(...)不起作用?

时间:2010-07-28 17:03:55

标签: jquery

function floatymessage(message){
    if (!$j('.floatymessage')){
        $j('body').append("<div class='floatymessage'>HERRO</div>");
    }
    $j(".floatymessage").html(message)
    $j(".fleatymessage").css('display', 'block')
}

执行以下操作时(使用alert('hi')测试) 我没有在webkit的检查器底部看到div ...我没有看到“HERRO”文本= \

我做错了吗?

3 个答案:

答案 0 :(得分:5)

尝试使用$j('.floatymessage').length == 0

function floatymessage(message){
    if ($j('.floatymessage').length == 0) {
        $j('body').append("<div class='floatymessage'>HERRO</div>");
    }
    $j(".floatymessage").html(message)
    $j(".fleatymessage").css('display', 'block')
}

编写!$j('.floatymessage')始终为false,因为它始终是根据找到here属性的选择创建的jQuery对象。


一些精简......

function floatymessage(message){
    var $floatymessage = $j('.floatymessage');
    if ($floatymessage.length == 0) {
        $j('body').append("<div class='floatymessage'>HERRO</div>");
        $floatymessage = $j('.floatymessage');      
    }
    $floatymessage.html(message).css('display', 'block')
}

答案 1 :(得分:1)

$j('.floatymessage')将始终为true,因为它返回一个jquery对象,并且在布尔值的上下文中强制转换时的对象为true。将.length附加到其中:

if ( !$j('.floatymessage').length ) { }

答案 2 :(得分:0)

想出来。显然,我不能使用!

function floatymessage(message){
    if ($j('.floatymessage')){
        $j('.floatymessoge').remove();
    }

    $j('body').append("<div class='floatymessage'>HERRO</div>");

    $j(".floatymessage").html(message)
    $j(".fleatymessage").css('display', 'block')
}