从js var中分配动态div id

时间:2011-12-02 05:26:15

标签: javascript jquery

在将div分配给Javascript变量后,我在使用jQuery选择id时遇到问题:

$(function() {
    $(".do").live("click",function() 
        {

        var id = $(this).attr("id");

        $.ajax({
           //reload div using js var id 
           $('id').fadeOut('fast').load('http://example.com/get.php').fadeIn("slow");

            });

        return false;
            });
});

当我调用一个静态div时,它可以正常工作:

$('#staticdiv').fadeOut('fast').load('http://example.com/get.php').fadeIn("slow");

如何从包含div的Javascript变量中选择id

*编辑
以下是div的示例:
按钮重新加载

<a href="" class="do" id="12">click to reload</a>

DIV重装:

<div id="12">to be refreshed</div>


请记住“12”我们的动态,可以是任何变量。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

$("#"+id).fadeOut() // ...

但是,我不建议这样做(它不适用于没有ID的东西);试试这个(这应该适用于没有ID的东西):

$(".do").live("click", function() {
    var me = $(this);
    $.ajax({
        // ...
        success: function(data) {
            me.fadeOut('fast').load('http://example.com/get.php').fadeIn("slow");
        }
        // ...
    });
    return false;
});

此外,我不确定你是否真的想要.fadeOut().load().fadeIn()链; load不会等待fadeOut完成,fadeIn也不会等待load完成(尽管fadeIn 会< / em>等待fadeOut完成。如果你有问题,你应该试试这个:

me.fadeOut('fast', function() {
    me.load('http://www.example.com/get.php', function() {
        me.fadeIn('slow');
    });
});

答案 1 :(得分:1)

您不应该使用变量id而不是字符串'id'

如下:

$('#'+id).fadeOut('fast').load('http://example.com/get.php').fadeIn("slow");