最初のtrをクリックしてtrをロードしていますが、問題は、tr内の各tdが2番目のdiv内にある異なるdivをロードする必要があることです。これで、custdata内にあるコンテンツがロードされていますが、それぞれのdiv内にあるコンテンツをロードするにはどうすればよいですか?
これがデモです http://jsfiddle.net/FMnTa/6/
最初のtrをクリックしてtrをロードしていますが、問題は、tr内の各tdが2番目のdiv内にある異なるdivをロードする必要があることです。これで、custdata内にあるコンテンツがロードされていますが、それぞれのdiv内にあるコンテンツをロードするにはどうすればよいですか?
これがデモです http://jsfiddle.net/FMnTa/6/
これがあなたが求めているものかどうかはわかりませんが、そのようです。
$(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")
これで何が起こるかを見てください:
$(".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