Javascript 当li位于Jquery中列表项的子级别时,如何在li中获取空ol?

Javascript 当li位于Jquery中列表项的子级别时,如何在li中获取空ol?,javascript,jquery,Javascript,Jquery,在下面的代码片段中,我尝试获取并突出显示包含空ol元素(ol没有任何li元素)的每个li,而不考虑子级别的数量 $(文档).ready(函数(){ var Text=''; var emptyLiText=''; $('ol#myUL>li')。每个(函数(){ lenOl=$(this.find('ol').length; 如果(lenOl>0){ lenOlLi=$(this).find('ol').children('li').length; 如果(lenOlLi==0){ $(this

在下面的代码片段中,我尝试获取并突出显示包含空
ol
元素(
ol
没有任何
li
元素)的每个
li
,而不考虑子级别的数量

$(文档).ready(函数(){
var Text='';
var emptyLiText='';
$('ol#myUL>li')。每个(函数(){
lenOl=$(this.find('ol').length;
如果(lenOl>0){
lenOlLi=$(this).find('ol').children('li').length;
如果(lenOlLi==0){
$(this.addClass('error_item');
emptyLiText=$(this).clone()//克隆元素
.children()//选择所有子项
.remove()//删除所有子项
.end()//再次返回到所选元素
.text();
emptyLiText=$.trim(emptyLiText);
文本+=''+空文本;
$('.message').html(''+
“×;无法保存:菜单项“+Text+”是父项,但内部没有子项。”);
突破=正确;
//返回false;
}否则{
($(this).hasClass('error\u item')==true)?$(this.removeClass('error\u item'):'';
}
}
})
})
。错误\u项{
边框:1px纯红;
}

  • 样本项目1
  • 样本项目2
  • 帐目
  • 样本项目3
  • 样本项目4
  • 样本项目5
  • 样本项目6
  • 样本项目7
  • 您使用的是
    $('ol#myUL>li')
    选择器,其中
    表示直接子女

    替换为一个空格,以获取父级
    中所有
  • 元素的列表

    像这样的
    $('ol#myUL li')

    …获取并高亮显示包含空ol元素的每个li

    纯香草JS

    const emptyOl = [].prototype.filter.call(document.querySelectorAll('ol'), el => el.childNodes.length < 1)
    const liOfEmptyOl = [].prototype.filter.call(emptyOl, el => el.parentNode.tagName == 'LI')
    const highLighted = [].prototype.map.call(liOfEmptyOl, el => el.classList.add('highlighted'))
    
    if (liOfEmptyOl.length > 0) console.error('Danger')
    

    啊!!是的,修理这个花了好几个小时。非常感谢您的帮助;)
    .highlighted {border: 1px solid red}