2017-10-05 97 views
2

也许我理解错了,但不应该()在这种情况下工作吗?我究竟做错了什么?jQuery有()不按预期工作

$("#count").on("click", function(){ 
    $(".item").each(function(index, element){ 
     $(element).text(index + 1); 

     /*** this line does nothing ****/ 
     $(element).has(".special").css("background", "black"); 

     if(index + 1 == 4 || index + 1 == 8){ 
     $(this).css("background", "#A5C663"); 
     } 
    }) 
    }) 

HTML:

<div id="grid"> 
    <div class="item"></div> 
    <div class="item special"></div> 
    <div class="item"></div> 
    <div class="item"></div> 
    <div class="item special"></div> 
    <div class="item"></div> 
    </div> 

这不是工作之一:

$(this).has(".special").css("background", "black"); 

或者:

$(".item).has(".special").css("background", "black"); 

回答

2

更换hasis

  • is是这个元素的集合
  • has是关于子孙
+0

我明白了。它适用于例如我在“.item”中添加一个带有“special”类的段落。谢谢。接受,当它允许我。 – Sergi