Javascript 如何检查jquery元素的内容

Javascript 如何检查jquery元素的内容,javascript,jquery,html,Javascript,Jquery,Html,我正在学习一些jquery。在我的html页面中,我有如下内容: <li> <ul> <p>This ul has text</p> </ul> </li> <li> <ul></ul> </li> 我每次都会收到带有not empty ul的警报,因此if语句永远不会为真 如何正确检查“ul”标记中是否没有任何内容?在if语句中,$u

我正在学习一些jquery。在我的html页面中,我有如下内容:

<li>
    <ul>
       <p>This ul has text</p>
    </ul>
</li>

<li>
    <ul></ul>
</li>
我每次都会收到带有not empty ul的警报,因此if语句永远不会为真

如何正确检查“ul”标记中是否没有任何内容?

在if语句中,$ul.text应该有括号,并且是$ul.text:

如果可能存在空白,您可能还希望对其进行修剪:

if( $ul.text() == null || $.trim($ul.text()) == ""){
或者将:empty选择器与.is组合使用:

你可以用

如果你想检查ul,他们之间只有空间,然后你可以使用过滤器和修剪得到ul

您可以使用选择器

试试这个:

$('ul:empty').each(function(){ 
   //-- Do your stuff
});

您的标记丢失了

,或者是您刚输入问题时的标记?正如提示一样,无序列表元素的唯一有效直接子元素是列表项。您可以将段落元素嵌套在列表项中,但直接嵌套在无序列表中是无效的,如图所示。使用children'ul'和find'>ul'之间有区别吗?
if( $ul.text() == null || $.trim($ul.text()) == ""){
if($ul.is(':empty')){
$('ul:empty').each(
$('ul').filter(function(){
   rturn $.trim($(this).text()) == "";
});
var $ul = $li.find(' > ul')
if( $ul.is(':empty')){
    alert("Empty ul");
}else{ 
    alert("Not empty ul");
}
$('ul:empty').each(function(){ 
   //-- Do your stuff
});