如果没有附加类或id,请删除jquery中的空div

如果没有附加类或id,请删除jquery中的空div,jquery,magento,css-selectors,Jquery,Magento,Css Selectors,您好,我的代码中有一个空div,我想通过jquery删除它,并尝试: $('.col-main > div:empty').remove(); $('div:not([class])'.remove(); $('div[class!=""]').remove(); 还尝试: $('.col-main > div[class!=""]').remove(); $('.col-main > div:not([class])'.remove(); $('.col-main >

您好,我的代码中有一个空div,我想通过jquery删除它,并尝试:

$('.col-main > div:empty').remove();
$('div:not([class])'.remove();
$('div[class!=""]').remove();
还尝试:

$('.col-main > div[class!=""]').remove();
$('.col-main > div:not([class])'.remove();
$('.col-main > div[class!="clr"]').remove(); - im guessing here

最后两个删除了我在页面上的所有div,但都不起作用。我想保留所有附加了类或id(例如clr)的空div。

您可能必须使用
每个
循环它们,并检查是否设置了
.attr('class')
.attr('id')

您可能必须使用
每个
循环它们,并检查是否设置了
.attr('class'))
.attr('id')
已设置。

我认为您应该详细阅读jQuery规范,这样您才能更好地理解它:)

:not()
是从元素列表中排除元素,例如,$('div:not(.hide')将选择所有没有.hide类的div

:当
html
text
中没有任何内容时为空

无论如何

$('div').each(function (i,n){
    if(!$(n).attr('class') || !$(n).attr('id')){
        // neither id or class exist
    }else{
        // id or class exists
    }
})
查看此链接以获取示例

我认为您应该详细阅读jQuery规范,这样才能更好地理解它:)

:not()
是从元素列表中排除元素,例如,$('div:not(.hide')将选择所有没有.hide类的div

:当
html
text
中没有任何内容时为空

无论如何

$('div').each(function (i,n){
    if(!$(n).attr('class') || !$(n).attr('id')){
        // neither id or class exist
    }else{
        // id or class exists
    }
})
查看此链接以获取示例

这是一个CSS选择器问题,实际上,不需要指定使用的框架,也不需要开始编写循环,也不需要使用
。每个

下面查找没有类名或ID的空div

div:empty:not([class]):not([id])

就这么简单。

这是一个CSS选择器问题,实际上,不需要指定所使用的框架,也不需要开始编写循环,也不需要使用
。每个

下面查找没有类名或ID的空div

div:empty:not([class]):not([id])


就这么简单。

你能显示相关的HTML吗?你能显示相关的HTML吗?你真的应该检查
$(n) .attr('class')&&$(n) .attr('id'))
而是确保节点没有类,也没有id。否则,如果节点没有类,它将像没有id一样执行。我假设这是一个打字错误。嗯,我假设他们可以知道
&&
|
运算符之间的区别,但是考虑一下+1:)嗯,我有一种感觉,这会起作用,但它没有,这是我的url:它只是一个空的,我的wc3验证器讨厌它,它只是在索引上。我还尝试了:$('div')。每个(函数(I,n){if(!$(n).attr('class'))和&(!$(n).attr('id')){//id或class都不存在remove();}否则{//id或class存在}});-抱歉,不知道如何设置格式,今天天气不太好:谢谢,但这也不起作用,有点恼人。2.5秒后,你会看到它们都被删除/删除。你真的应该检查
$(n) .attr('class')&&$(n) .attr('id'))
而是确保节点没有类,也没有id。否则,如果节点没有类,它将像没有id一样执行。我假设这是一个打字错误。嗯,我假设他们可以知道
&&
|
运算符之间的区别,但是考虑一下+1:)嗯,我有一种感觉,这会起作用,但它没有,这是我的url:它只是一个空的,我的wc3验证器讨厌它,它只是在索引上。我还尝试了:$('div')。每个(函数(I,n){if(!$(n).attr('class'))和&(!$(n).attr('id')){//id或class都不存在remove();}否则{//id或class存在}});-抱歉,不知道如何设置格式,今天天气不太好:谢谢,但这也不起作用,有点令人恼火。2.5秒后,你会看到它们都被删除了/删除了。这到底是如何删除元素的?@Val-以上只是选择器,这是问题的本质。要执行删除,它是jQuery中的
$('div:empty:not([class]):not([id])).remove()
,或
$('div:empty:not([class]):not([id])。在原型(Magento附带)或Mootools中调用('remove')
。在所有情况下,重要的部分都是一个正确的选择器,在这种情况下是OP混淆的部分。这有道理:)我可能在这里错了,但没有:不从列表中排除元素?您实际上是说select div是空的,exclude[class]exclude[id]@Val-这就是我们的意图。当选择器中的术语接触(没有空格)时,它的行为类似于AND。当用逗号分隔时,它是一个OR。我们只想匹配空的div,没有class属性,也没有id属性。这有点聪明,我会检查一下:)这到底是如何删除元素的?@Val-上面只是选择器,这是问题的本质。要执行删除,它是jQuery中的
$('div:empty:not([class]):not([id])).remove()
,或
$('div:empty:not([class]):not([id])。在原型(Magento附带)或Mootools中调用('remove')
。在所有情况下,重要的部分都是一个正确的选择器,在这种情况下是OP混淆的部分。这有道理:)我可能在这里错了,但没有:不从列表中排除元素?您实际上是说select div是空的,exclude[class]exclude[id]@Val-这就是我们的意图。当选择器中的术语接触(没有空格)时,它的行为类似于AND。当用逗号分隔时,它是一个OR。我们只想匹配空的、没有class属性和id属性的div