我正在加载一个tr onclick第一个tr,但问题是tr中的每个td应加载第二个div内的不同div。现在,custdata中的内容正在加载,但如何加载相应div内的内容?
答案 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 attributes(data-
属性)。在您的情况下,属性将是data-idcust
和data-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