用custdata加载div

时间:2012-08-10 11:38:53

标签: javascript jquery load onclick

我正在加载一个tr onclick第一个tr,但问题是tr中的每个td应加载第二个div内的不同div。现在,custdata中的内容正在加载,但如何加载相应div内的内容?

这是演示 http://jsfiddle.net/FMnTa/6/

2 个答案:

答案 0 :(得分:1)

我不确定这是否是你要求的,但似乎就是这样。

$(function(){
    $(".info").find("img").click(function(){                
        var trid = $(this).parent().attr("idcust");                
        var trdata = $(this).parent().attr("custdata");
        // Hide all content divs and show only the one related to the click
        $("#"+trid).children().hide();
        $(trdata).show();
        $("#"+trid).css("display","block");
    });
});​

这也是一个小提琴: http://jsfiddle.net/FMnTa/9/

代码也可以像这样改进:

$(function(){
    $("img", ".info").click(function(){                
        var parent = $(this).parent();
        var trid = parent.attr("idcust");                
        var trdata = parent.attr("custdata");
        // Hide all content divs and show only the one related to the click
        $("#"+trid).show().children().hide();
        $(trdata).show();
    });
});​

自定义数据属性

使用自定义属性时,您应该考虑使用custom data attributesdata-属性)。在您的情况下,属性将是data-idcustdata-custdata

然后,您可以使用jQuery的.data()来获取/设置属性。如果您为属性data-idcust命名,则可以使用.data("custid")将其读取,并将其设置为.data("custid", "newValue")

答案 1 :(得分:0)

看看会发生什么:

   $(".info").find("img").click(function(){                
        var trid = $(this).parent().attr("idcust");                
        var trdata = $(this).parent().attr("custdata");
        $("#"+trid).show().find(trdata).css('border', '1px solid red');
        $("#"+trid).show().find(trdata).toggle();
    });

find(trdata)找到tr1 div id trdata