Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript is:为空不适用于动态创建的内容_Javascript_Jquery - Fatal编程技术网

Javascript is:为空不适用于动态创建的内容

Javascript is:为空不适用于动态创建的内容,javascript,jquery,Javascript,Jquery,我有一个默认为空的divlistOfTodos。html中没有空格。我还有一个文本框,当按下enter键时,它会将文本附加到listOfTodos。出于某种原因,is:empty不起作用,它总是说它是空的 我的检查代码是: if ($('#listOfTodos').is(':empty')) { console.log("empty"); } else { console.log("not empty"); } 在这段代码上面,我还有: $("#someTextbox").k

我有一个默认为空的div
listOfTodos
。html中没有空格。我还有一个文本框,当按下enter键时,它会将文本附加到
listOfTodos
。出于某种原因,
is:empty
不起作用,它总是说它是空的

我的检查代码是:

if ($('#listOfTodos').is(':empty')) {
    console.log("empty");
} else {
    console.log("not empty");
}
在这段代码上面,我还有:

$("#someTextbox").keypress(function(e) {
        if (e.keyCode == 13) {
            $('#listOfTodos').append('<label>Some text</label>'); } 
});
$(“#someTextbox”)。按键(功能(e){
如果(e.keyCode==13){
$('listOfTodos').append('Some text');}
});
上面的标签将保存并在每次重新加载时检索。发生什么事了

使用

if ($.trim($('#listOfTodos').text()) == '') {
  alert("empty");
} else {
  alert("not empty");
}

JS不是自上而下运行代码吗?我在js文件中的if语句上方有一个按键

是的,但事件处理程序在触发事件之前不会执行,而在整个脚本执行之后才可能执行

或者,如果要在多个位置运行该逻辑,请将其放入函数中:

function isEmpty() {
    if ($('#listOfTodos').is(':empty')) {
        console.log("empty");
    } else {
        console.log("not empty");
    }
}

// run on load
isEmpty();

$("#someTextbox").keypress(function(e) {
    if (e.keyCode == 13) {
        $('#listOfTodos').append('<label>Some text</label>');
        // run on change
        isEmpty(); 
    } 
});
函数为空(){
if($('#listOfTodos')。为(':empty')){
控制台日志(“空”);
}否则{
控制台日志(“非空”);
}
}
//负载运行
isEmpty();
$(“#someTextbox”)。按键(功能(e){
如果(e.keyCode==13){
$('listOfTodos').append('sometext');
//找零
isEmpty();
} 
});

请提供完整的示例。不清楚什么时候执行
if
语句。给jsfiddle,它的free你可以在de DIV中获取HTML并检查它的长度helo,fiddle工作正常。你的html出现了一些问题。请检查此项,它可能会有所帮助。答案有一种方法可以确保你所认为的是空的:他们为什么要这样做?“<代码>:空< /代码>有什么问题?奇怪的是,我在<代码>的第一行中得到了一个错误:Uncaught TypeError:未定义不是函数< /代码> @ FelixCink,如果有空白,<代码>:空仍然会考虑一些数据,因此它考虑了空白。因此,使用trim是非常重要的proper@jQuery.PHP.Magento.com:引用OP“html中没有空白。”@jQuery.PHP.Magento.com也不起作用。仍然显示
empty
,尽管它不正确,但我希望在访问页面时运行
if语句
,因为我保存了一些信息,并且它当前附加到
列表todos
div。因此,如果没有保存任何内容,然后,
listOfTodos
应该是空的,
if语句
应该检查以确保并发送某种消息…@Jamie:然后将该逻辑放入函数中,并在内容可能发生更改时调用该函数。这就是函数的用途。
$("#someTextbox").keypress(function(e) {
    if (e.keyCode == 13) {
        $('#listOfTodos').append('<label>Some text</label>'); 

        if ($('#listOfTodos').is(':empty')) {
            console.log("empty");
        } else {
            console.log("not empty");
        }
    } 
});
function isEmpty() {
    if ($('#listOfTodos').is(':empty')) {
        console.log("empty");
    } else {
        console.log("not empty");
    }
}

// run on load
isEmpty();

$("#someTextbox").keypress(function(e) {
    if (e.keyCode == 13) {
        $('#listOfTodos').append('<label>Some text</label>');
        // run on change
        isEmpty(); 
    } 
});