0

我想检查“特定”类是否应用于 div 内的跨度。所以我尝试了

$('#div').click(function() {
     console.log($(this).find('.myImgClass').length);  // returns 0-if not found
                                                      // 1 if found
}

html

<div>
 <span class="myImgClass"></span>
</div>

这是正确的方法吗?

4

5 回答 5

2

使用jQuery.hasClass()方法来做到这一点:

var hasMyImgClassClass = $("span").hasClass("myImgClass");
于 2012-04-04T08:40:03.400 回答
1

您的选择器错误,div而不是#div

$('div').click(function() {
   console.log($(this).has('.myImgClass').length);
});
于 2012-04-04T08:41:19.390 回答
1
$("div >span").click(function(){
 alert($(this).hasClass('myImgClass')) 
});
于 2012-04-04T08:47:44.413 回答
1

这应该可以解决问题,

$('div').click(function() {
  alert("Spans with .myImgClass: " + $(this).children('span.myImgClass').length);
});

JSFiddle.net 上的示例

如果你需要类的 div,那么:

$('div > span.myImgClass').click(function() {
  var theSpan = $(this);
  var theDiv = theSpan.parent();
  alert("Div with Span with .myImgClass.");
});
于 2012-04-04T08:48:03.427 回答
0

看起来不错(除了 div 选择器),但是如果您想专门检查跨度,请将其更改为:

$('div').click(function() {
     console.log($(this).find('span.myImgClass').length);  
});
于 2012-04-04T08:40:41.740 回答