使用循环编号作为密钥循环通过JQUERY

时间:2014-01-24 13:48:39

标签: javascript jquery for-loop

我想根据我输入的计数循环遍历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搜索中找到相关信息。

我希望这很清楚,你明白我在做什么。

4 个答案:

答案 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中隐式解释为字符串。