Javascript 使用jQuery检查li元素是否有任何具有值的子元素
我需要检查每个li元素是否有任何值,或者是否没有使用jQuery。我在下面提供我的代码Javascript 使用jQuery检查li元素是否有任何具有值的子元素,javascript,jquery,html,Javascript,Jquery,Html,我需要检查每个li元素是否有任何值,或者是否没有使用jQuery。我在下面提供我的代码 $(“#navbarNavDropdown ul a”)。每个(函数(){ if($(this.find('li').has('ul”).length){ 警报('是的,我们有一个ul'+$(this.text()); }否则{ 警报('是的,我们没有ul'+$(this.text()); } }) 此代码将很好地适用于您 $(“#navbarNavDropdown ul a”
$(“#navbarNavDropdown ul a”)。每个(函数(){
if($(this.find('li').has('ul”).length){
警报('是的,我们有一个ul'+$(this.text());
}否则{
警报('是的,我们没有ul'+$(this.text());
}
})
-
-
-
此代码将很好地适用于您
$(“#navbarNavDropdown ul a”)。每个(函数(){
如果($(this).closest('li')有('ul').length){
警报('是的,我们有一个ul'+$(this.text());
}否则{
警报('是的,我们没有ul'+$(this.text());
$(this).find('span').remove();//删除span
}
})
-
-
-
这将解决您的问题
$(“#navbarNavDropdown ul li”)。每个(函数(){
if($(this.find(“ul”).length){
警报('是的,我们有一个ul'+$(this.text());
}否则{
警报('不,我们没有ul'+$(this.text());
$(this.find('span').remove();
}
})
-
-
-
元素没有任何子元素
或元素。一个是兄弟姐妹而不是孩子
如果您想让它成为一个孩子,您需要更改html,以便关闭
在关闭
之后。但是请注意,由于您有子
元素,您将无法将整个内容包装在锚中,因为这是无效的html,浏览器将不会创建这样的结构
您需要将行更改为检查兄弟姐妹的内容,如:
$(this).next('ul').find('li ul').length
//Or go back up to the parent element and then go searching back down
$(this).parent().find('li ul').length
ul不在元素内,因此$(this.find('li')。has(“ul”)
无法工作
使用$(this).next()
获取ul元素。另一种方法
$(“#navbarNavDropdown ul”)。每个(函数(){
$.each(this.children,函数(索引,元素){
const text=element.innerText.split('\n').reverse()[0];
if(element.localName=='li'&&$(element.has('ul')。长度>0){
警报(‘是的,我们有一个ul’+文本);
}否则{
警报(是的,我们没有ul+文本);
$(元素)。查找('span')。删除();
}
});
})
-
-
-
您是否尝试过使用contains()是的,它显示错误的值意味着在其他部分显示所有4个值。我很困惑。如果任何li元素都没有值,可以这样做吗?请删除相应的span标记?要删除相应的span标记,请写入$(this)。查找('span')。删除()
在else部分,父UL
有两个子意思li
为什么它在同一个循环中出现4次。它将检查所有UL
和li
。你还期待其他东西吗?事实上,如果下拉列表中的元素没有值,我需要删除下拉列表图标(
)。这就是我检查的原因。你们能做到吗?是的,我更新了代码片段。我希望这就是你想要的。