我想根据我输入的计数循环遍历JQUERY。具体来说,如果我为条目0输入此代码,则此代码有效:
$(document).ready(function()
{
$('.0').mouseenter(function()
{
$('.hideme0').fadeIn('slow');
});
$('.0').mouseleave(function()
{
$('.hideme0').fadeOut('slow');
});
});
我现在希望替换('.0')这是动态CSS类,名称为0,带有循环计数器 例如
for (var n = 0; n < 3; ++ n)
{
$(**n**).mouseenter(function()
{
$('.hideme**n**').fadeIn('slow');
});
$(**n**).mouseleave(function()
{
$('.hideme**n**').fadeOut('slow');
});
}
有关如何使用jQuery执行此操作的任何想法?我无法在API或Google搜索中找到相关信息。
我希望这很清楚,你明白我在做什么。
答案 0 :(得分:2)
for (var n = 0; n < 3; n++)
{
$("." + n).mouseenter(function()
{
$('.hideme' + n).fadeIn('slow');
});
$("." + n).mouseleave(function()
{
$('.hideme'+ n).fadeOut('slow');
});
}
答案 1 :(得分:2)
你得到了什么?它只是一个简单的字符串,因此您可以使用串联构建它:
$('.' + n).mouseenter(function()
{
$('.hideme' + n).fadeIn('slow');
//...
//and so on
但是,在for循环中使用它会因闭包而导致问题。您可以这样解决:
for (var n = 0; n < 3; ++ n)
{
(function(x){
$('.' + x).mouseenter(function()
{
$('.hideme' + x).fadeIn('slow');
});
})(n);
(function(x){
$('.' + x).mouseleave(function()
{
$('.hideme' + x).fadeOut('slow');
});
})(n);
}
Here is a working example使用您的HTML(来自评论)
答案 2 :(得分:1)
您可以连接字符串并将其用作选择器:
var index = 1;
var selector = '.hideme' + index;
$(selector).fadeOut('slow');
答案 3 :(得分:0)
这应该只是将数值连接成选择器字符串的一部分:
$('.' + n).mouseenter(function()
{
$('.hideme' + n).fadeIn('slow');
});
$('.' + n).mouseleave(function()
{
$('.hideme' + n).fadeOut('slow');
});
Numerics可以用这种方式在JavaScript中隐式解释为字符串。