2014-02-21 80 views
0

jQuery如何通过单击链接蓝色,黄色,红色分别删除每个元素?jQuery如何删除每个元素

不幸的是,find函数并没有设法在整个树中移动。

项目:http://jsfiddle.net/Q9VDh/

HTML标记:

<div class="view-products"> 
    <div class="view-header"> 
     <div class="reset_pol"> 
<a class="blue_" href="#">Blue</a><a class="yellow_" href="#">yellow</a><a class="red_" href="#">Red</a> 
     </div> 
    </div> 

    <div class="view-content"> 
     <div class="jcarousel-container jcarousel-container-horizontal jcarousel-navigation-after" style="position: relative; display: block;"> 
      <div class="jcarousel-clip jcarousel-clip-horizontal"> 
       <ul class="jcarousel jcarousel-view--listaoferowanychproduktow--block jcarousel-dom-1 jcarousel-processed jcarousel-list jcarousel-list-horizontal" style="overflow: hidden; position: relative; top: 0px; margin: 0px; padding: 0px; left: 0px; width: 3286px;"> 
        <li class="odd jcarousel-item jcarousel-item-horizontal jcarousel-item-1 jcarousel-item-1-horizontal" jcarouselindex="1" style="float: left; list-style: none;"> 
         <div class="views-field views-field-field-kategoria"> 
          <div class="field-content"> 
           <div class="blue"> 
            content 
           </div> 
          </div> 
         </div> 
        </li> 
        <li class="even jcarousel-item jcarousel-item-horizontal jcarousel-item-2 jcarousel-item-2-horizontal" jcarouselindex="2" style="float: left; list-style: none;"> 
         <div class="views-field views-field-field-kategoria"> 
          <div class="field-content"> 
           <div class="yellow"> 
            content 
           </div> 
          </div> 
         </div> 
        </li> 
        <li class="odd jcarousel-item jcarousel-item-horizontal jcarousel-item-3 jcarousel-item-3-horizontal" jcarouselindex="3" style="float: left; list-style: none;"> 
         <div class="views-field views-field-field-kategoria"> 
          <div class="field-content"> 
           <div class="red"> 
            content 
           </div> 
          </div> 
         </div> 
        </li> 
        <li class="even jcarousel-item jcarousel-item-horizontal jcarousel-item-4 jcarousel-item-4-horizontal" jcarouselindex="4" style="float: left; list-style: none;"> 
         <div class="views-field views-field-field-kategoria"> 
          <div class="field-content"> 
           <div class="red"> 
           content 
           </div> 
          </div> 
         </div> 
        </li> 
       </ul> 
      </div> 

     </div> 
    </div> 
</div> 

在我创建的验证码的jQuery的那一刻:

(function() { 

      $('.blue_').click(function(event){ 
        $(this).closest('.blue'); 
      }) 
}()); 
+0

需要澄清你想要做什么。什么,特别是,你想删除,什么时候? – kinakuta

+0

我希望每次点击链接时都要单独删除每个类别的蓝色,黄色和红色。 – BlackQNX

+0

并且在您单击类成员后自动添加 – BlackQNX

回答

1

由于它仍然没有完全清楚自己想要什么,请参阅本代码并告诉我是否接近w你想帽子(也是这个FIDDLE见):

$('.blue_').click(function(event){ 
    switchClass('blue'); 
}); 
$('.yellow_').click(function(event){ 
    switchClass('yellow'); 
}); 
$('.red_').click(function(event){ 
    switchClass('red'); 
}); 
function switchClass(selectedClass) { 
    var classes = ['red', 'yellow', 'blue']; 
    for(var i = 0; i < classes.length; i++) { 
     if (selectedClass == classes[i]) { 
      $('.was_'+selectedClass).addClass(selectedClass).removeClass('was_'+selectedClass); 
     } else { 
      $('.'+classes[i]).addClass('was_'+classes[i]).removeClass(classes[i]); 
     } 
    } 
} 

一些解释: 我增加了一个功能,以防止一些重复的代码。在这个函数中,被点击的类保持(或获取)它的原始类(例如.blue),而其他的类被附加到它们(例如was_red)。

+0

这就是我的意思,谢谢 – BlackQNX

0

试试这个:

$('.blue_').click(function(event){ 
    $('.blue').remove(); 
}) 

或本:

$('.blue_').click(function(event){ 
     $(this).closest('.view-products').find('.blue').remove(); 
}) 

DEMO

1

你可以这样做:

(function() { 
    $('.blue_, .yellow_, .red_').click(function (event) { 
     var cls = $(this).attr('class'); // Get the class name 
     cls = cls.substring(0, cls.length - 1); // Remove `_` from the class name 
     $('.' + cls).remove(); // Remove the element with the class name of clicked anchor without _ 
    }) 
}()); 

Fiddle Demo

+0

您是否可以授权我修改代码牙后点击蓝色类删除红色和黄色级 – BlackQNX

+1

我没有明白你的意思。你能改说吗? – Felix

+0

我的错误。点击课程蓝色后,我可以修改删除红色和黄色代码的牙齿吗? – BlackQNX

0
$('a').click(function(event){ 
        $(this).hide(); 
      })