【发布时间】:2012-10-28 22:51:21
【问题描述】:
我有一个 jquery 数据表,在该数据表中,每一行都有一个列,可让您查看该行的详细信息。我不需要数据表 row_details 的东西。
这个想法是,一旦单击“视图”,文本就会变为隐藏,并且带有 row_### 的 div 将附加到内容主体。然后,如果在显示该行时单击相同的按钮,它将隐藏它。此外,如果有人单击另一行的视图,则上一行文本应变回隐藏,div 隐藏,并且应显示刚刚单击的行。
这是我目前所拥有的:
$("a[class^=view]").click(function() {
var id = $(this).attr('class').match(/\d{1,}/);
if( $("div[id^=report_]").size() >= 1) {
// Slide up, remove
// Change text back to view
} else {
// Append and change text to Hide
}
});
如果我在已显示某个详细信息的情况下单击另一个“视图”,它会在当前 div 中添加一个新 div 并将相同的新 div 附加到内容主体.. 显然不是我正在寻找的效果所以某处我的逻辑是错误的。有什么想法吗?
【问题讨论】:
-
您不应该使用
size,它已被弃用。使用length属性,如if ( $("div[id^=report_]").length ) { ... } -
您可以将
/\d{1,}/替换为/\d+/ -
就像这样:1) 如果不存在元素,则附加它并将文本更改为“隐藏” 2) 如果单击相同的“查看”链接,删除元素并将文本更改回查看。 3)如果一个元素存在,删除该元素并将其相关文本更改回视图,同时附加一个新元素并将其文本更改为隐藏。我得到了添加/删除的东西,但是当我附加新的 div 时,它会自动删除,因为它在相同的条件下检查 class^=report_ 的多个元素
-
这是否接近您想要的...规格仍不清楚jsfiddle.net/Jt45Y
标签: jquery datatables