如何使jquery成为变量?

时间:2015-03-17 15:59:15

标签: javascript jquery

是否可以从jquery中创建一个变量?我有以下代码,但它无法正常工作。

var container = $('#container');

if(container.is(':visible') == false) $(body).append('<div id="container"></div>'); // I console.log the result and it gives me false

container.append('<p>Test</p>'); // This doesn't append

3 个答案:

答案 0 :(得分:3)

您遇到的问题是,只有在创建对象时才会计算选择器,因此当您执行最后一次追加时,container仍然是一个空集合。

您应该重新分配变量:

var container = $('#container');

if(container.is(':visible') == false) {
    $(body).append('<div id="container"></div>');
    container = $('#container');
}

container.append('<p>Test</p>'); 

但如果你不做更多,没有理由缓存$('#container'),计算速度很快。

答案 1 :(得分:1)

是的,但是在执行追加时需要更新变量。

您最好评估jQuery集合的长度,然后相应地分配一个变量:

var $container = $('#container');

if( !$container.length )
{
    $container = $('<div id="container" />');
    $container.appendTo('body');
}

$container.append('<p>Test</p>');

答案 2 :(得分:1)

当您尝试向其添加内容时,

container可能不存在。

当你这样做时

var container = $('#container');

这并不意味着容器将始终指向具有容器ID的任何项目。相反,它会查找这样的容器,如果它不存在,则容器变量为“空”,即使您稍后创建了一个div。

您要做的是首先创建容器,然后创建变量,或者将正确的对象重新分配给变量。

额外提示,开发人员通常在{j}对象时使用$前缀变量,这样他们就会记住他们不必再用$()包装它们。