Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 若div为空,则删除它并更改下一个div的类_Javascript_Jquery - Fatal编程技术网

Javascript 若div为空,则删除它并更改下一个div的类

Javascript 若div为空,则删除它并更改下一个div的类,javascript,jquery,Javascript,Jquery,一些生成的输出可以如下所示: <div class="fivecol"></div> <div class="sevencol">content</div> 这没用。有什么想法吗 $('.fivecol').each(function(i, div) { if (!div.html().trim()) { div.remove().next('sevencol').removeClass('sevencol').addCla

一些生成的输出可以如下所示:

<div class="fivecol"></div>
<div class="sevencol">content</div>
这没用。有什么想法吗

$('.fivecol').each(function(i, div) {
    if (!div.html().trim()) {
       div.remove().next('sevencol').removeClass('sevencol').addClass('twelvecol');
    }
});
基本上,我只是修复了一些语法错误,并将
this
引用更改为正确的参数调用。让我知道这是怎么回事

最好的

-布莱恩

基本上,我只是修复了一些语法错误,并将
this
引用更改为正确的参数调用。让我知道这是怎么回事

最好的

-Brian试试这个

$(function () {
    $('.fivecol').each(function() {
    if ($(this).html() =='') {
       $(this).remove();
       $('.sevencol').each(function(){
         $(this).attr('class','twelvecol');
       });
    }
    });
});
试试这个

$(function () {
    $('.fivecol').each(function() {
    if ($(this).html() =='') {
       $(this).remove();
       $('.sevencol').each(function(){
         $(this).attr('class','twelvecol');
       });
    }
    });
});

我们可以使用一些奇特的选择器技巧:

$(".fivecol:empty + .sevencol").attr("class", function(){
    return $(this).prev().remove(), "twelvecol";
});
正如您可能猜到的,
.fivecol:empty
尝试使用类
fivecol
查找空元素。然后,它继续使用
+
获取同级元素,该元素具有类
.sevencol

一旦我们有了
.sevencol
元素,我们就开始将其类值更改为
twevelcol
。因为我们在这个函数中,我们知道找到了
.fivecol:empty
,所以我们可以安全地删除它。最后,我们只需返回要分配在
sevencol
位置的新类值


演示:

我们可以使用一些奇特的选择器技巧:

$(".fivecol:empty + .sevencol").attr("class", function(){
    return $(this).prev().remove(), "twelvecol";
});
正如您可能猜到的,
.fivecol:empty
尝试使用类
fivecol
查找空元素。然后,它继续使用
+
获取同级元素,该元素具有类
.sevencol

一旦我们有了
.sevencol
元素,我们就开始将其类值更改为
twevelcol
。因为我们在这个函数中,我们知道找到了
.fivecol:empty
,所以我们可以安全地删除它。最后,我们只需返回要分配在
sevencol
位置的新类值

演示:

演示:



演示:

if条件缺少一个结束(
。if中也缺少结束}括号condition@nhahtdh感谢您将其添加到伪代码中,仍然不起作用。这是基于您的解决方案的另一个解决方案:if条件缺少一个close
。if中也缺少close}括号condition@nhahtdh感谢您将其添加到伪代码中,仍然不起作用。这是基于您的解决方案的另一个解决方案:请不要在答案上添加签名。@bwheeler96-获取此错误“未捕获的TypeError:Object”没有方法“html”,请不要在答案上添加签名。@bwheeler96-获取此错误“未捕获的TypeError:Object”没有方法“html”看看最后一行,这就是神奇的地方。你是如何检查它的,是通过查看页面sourcedev tools和它没有像.twelvecol那样跨越宽度的事实。请看最后一行,这是神奇的地方。您是如何检查它的,是通过查看sourcedev tools页面以及它没有像.twelvecol那样跨越宽度的事实来检查的。@DirtyBirdDesign:确实如此。添加了一个演示。@DirtyBirdDesign:您的问题显示了直接的兄弟姐妹。是真的吗?如果没有,请将
+
更改为
~
,尽管这假定每组
..col
元素都有单独的容器。在您的演示中可以使用,但在我这方面有一些不允许使用的功能@DirtyBirdDesign:我得到404的链接。@DirtyBirdDesign:我在那个页面上没有看到任何空的
fivecol
元素。它们都有嵌套元素。@DirtyBirdDesign:当然有。添加了一个演示。@DirtyBirdDesign:您的问题显示了直接的兄弟姐妹。是真的吗?如果没有,请将
+
更改为
~
,尽管这假定每组
..col
元素都有单独的容器。在您的演示中可以使用,但在我这方面有一些不允许使用的功能@DirtyBirdDesign:我得到404的链接。@DirtyBirdDesign:我在那个页面上没有看到任何空的
fivecol
元素。它们都有嵌套的元素。