检查列表项在jquery中是否有多个直接跨度子项

检查列表项在jquery中是否有多个直接跨度子项,jquery,Jquery,如何检查列表项在jquery中是否有超过1个直接跨距子元素? 我现在有点像: if ( $('li:has(span)') ) { alert ('has span'); } 当有一个span子元素时,以及当有嵌套的li本身有一个或多个span子元素时,这将发出警报。如果有两个或多个子span元素,这将发出警报 $('li').each(function(){ if($('> span',this).length >= 2) { alert('h

如何检查列表项在jquery中是否有超过1个直接跨距子元素? 我现在有点像:

if ( $('li:has(span)') ) {
   alert ('has span');
}

当有一个span子元素时,以及当有嵌套的li本身有一个或多个span子元素时,这将发出警报。

如果有两个或多个子
span
元素,这将发出警报

$('li').each(function(){
    if($('> span',this).length >= 2)
    {
       alert('has span');
    }
});
或者使用.Wolff过滤器回答

$('li').filter(function(){return $('> span',this).length > 1;});


您的意思是等于或大于1吗?等于或大于2
$('li').filter(function(){return$(this).children('span').length>1})
我会使用filter,这里您不检查直接子代,而是检查所有:$(this).children('span').length imean@A.Wolff啊,是的。错过了。为什么不简单地
$('li>span')。长度
?这没关系,即使$('>*',上下文)语法在过去也被弃用(看起来没有更多关于它的文档了),而且肯定仍然有效+1不要介意我的最后一次答复。我没有想到
  • @是的,我刚刚意识到。星期五,对吗?:-)这将添加所有李的跨度
    
    if ( $('li > span:eq(1)').length ) {
       alert ('has span');
    }
    
    if ( $('li > span:eq(0)').length > 0 ) {
       alert ('has span');
    }