如果div为空,请将其删除并更改下一个div的类

时间:2012-11-19 03:38:11

标签: javascript jquery

某些生成的输出可以如下:

<div class="fivecol"></div>
<div class="sevencol">content</div>

如果div.fivecol为空,我想删除它并将div.sevencol更改为div.twelvecol

$('.fivecol').each(function() {
    if ($(this).html() ==''){
       $(this).remove().next('sevencol').removeClass('sevencol').addClass('twelvecol');
    }
});

没有做到这一点。有什么想法吗?

4 个答案:

答案 0 :(得分:4)

$('.fivecol:empty + .sevencol').toggleClass('sevencol twelvecol')
                               .prev()
                               .remove();

DEMO: http://jsfiddle.net/JY9NN/

答案 1 :(得分:0)

$('.fivecol').each(function(i, div) {
    if (!div.html().trim()) {
       div.remove().next('sevencol').removeClass('sevencol').addClass('twelvecol');
    }
});

基本上我只修复了一些语法错误,并将this引用更改为正确的参数调用。让我知道它是如何工作的。

最佳,

-Brian

答案 2 :(得分:0)

试试这个,

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

答案 3 :(得分:0)

我们可以使用一些花哨的选择器技巧:

$(".fivecol:empty + .sevencol").attr("class", function(){
    return $(this).prev().remove(), "twelvecol";
});

正如您可能猜到的那样,.fivecol:empty尝试使用类fivecol查找空元素。然后使用具有类+的{​​{1}}继续抓取兄弟元素。

我们拥有.sevencol元素后,我们开始将其类值更改为.sevencol。由于我们处于此功能中,因此我们知道找到了twelvecol,因此我们可以安全地删除它。最后,我们只需返回要在.fivecol:empty

位置分配的新类值

演示:http://jsfiddle.net/cLcVh/1/