这是我的HTML:
<div id="gallery">
<div class="item"></div>
<div class="somethingelse"></div>
<div class="item"></div>
<div class="somethingelse"></div>
<div class="item active"></div>
<div class="somethingelse"></div>
<div class="item"></div>
</div>
现在,对于每个item
,我想在div中添加数字,所以我这样做了:
function initMenu() {
$( ".gallery-menu" ).html("");
var columns = $('.item').length;
for ( var i = 0; i < columns; i++ ) {
$( ".gallery-menu" ).append( i );
}
}
initMenu();
现在我在0 1 2 3
div中变得简单gallery-menu
,这很好。
现在我想检查它是否是active
。所以我添加了一个这样的支票:
function initMenu() {
$( ".gallery-menu" ).html("");
var columns = $('.item').length;
for ( var i = 0; i < columns; i++ ) {
if ($(".item:eq(i)").hasClass('active')) {
$( ".gallery-menu" ).append( i + "-active");
} else {
$( ".gallery-menu" ).append( i );
}
}
}
initMenu();
但它不起作用..有人能指出我正确的方向吗?
答案 0 :(得分:3)
你可以这样做:
if ($(".item").eq(i).hasClass('active')) {
您可以使用eq
功能而不是连接字符串。
答案 1 :(得分:2)
您错过了联接i
试试这个
if($('.item:eq('+i+')').hasClass('active'))
答案 2 :(得分:1)
尝试使用i
:
+
变量
if ($(".item:eq(" + i + ")").hasClass('active')) {
答案 3 :(得分:1)
更简洁的方法是使用jQuery&#39; each()
函数:
$('.item').each(function(i, el){
if ($(this).hasClass('active')) {
$( ".gallery-menu" ).append( i + "-active");
} else {
$( ".gallery-menu" ).append( i );
}
});