0

最初のtrをクリックしてtrをロードしていますが、問題は、tr内の各tdが2番目のdiv内にある異なるdivをロードする必要があることです。これで、custdata内にあるコンテンツがロードされていますが、それぞれのdiv内にあるコンテンツをロードするにはどうすればよいですか?

これがデモです http://jsfiddle.net/FMnTa/6/

4

2 に答える 2

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();
    });
});​

カスタムデータ属性

カスタム属性を使用する場合は、代わりにカスタムデータ属性(属性)の使用を検討する必要がありますdata-。あなたの場合、属性はとにdata-idcustなりdata-custdataます。

次に、jQueryを使用.data()して属性を取得/設定できます。属性に名前を付けると、それを読み取って設定data-idcustできます。.data("custid").data("custid", "newValue")

于 2012-08-10T11:51:39.100 に答える
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

于 2012-08-10T11:54:38.217 に答える