gpt4 book ai didi

Javascript html表格隐藏列

转载 作者:行者123 更新时间:2023-12-01 05:36:26 26 4
gpt4 key购买 nike

我开发了这段简洁的小代码,它给定一个元素和一个格式正确的表格,在元素上创建一个下拉菜单,允许用户切换列的 View 。

我不知道如何在页面更改时保留更改(哪些列保持隐藏),因为在分页的页面上放置表格是一种常见的模式。

fiddle : https://jsfiddle.net/mssrq8ah/

我的 html 标记:

<table id="table">
<thead>
<tr>
<th>h1</th><th>h2</th><th>h3</th>
</tr>
</thead>
<tbody>
<tr>
<td>a1</td><td>a2</td><td>a3</td>
</tr>
<tr>
<td>b1</td><td>b2</td><td>b3</td>
</tr>
</tbody>
</table>
<button id="list">drop</button>

我的js函数:

table_hide("#list","#table")
function table_hide( button , table)
{

jQuery(button).attr("data-toggle","dropdown");
jQuery(button).addClass("dropdown-toggle");
jQuery(button).wrap("<div class='btn-group'>");
var list = "";
jQuery("thead").find("tr").first().find("th").each(function(index,element){
list = list + "<li>" +
"<div class='checkbox col-md-6'><label><input type='checkbox' checked value='"+index+"' class='td_hide'>"+jQuery(element).text()+"</label></div>"+
"</li>";
});
jQuery(button).after("<ul class='dropdown-menu col-md-12'>"+list+"</ul>");


jQuery(".td_hide").on("click",function(){
var target_column = jQuery(this).val();
jQuery("tr").each(function(index , element){

jQuery(this).find("th , td").eq(target_column).toggle();
});
});

jQuery(".dropdown-menu").find("select , .ws-popover-opener , .step-control").on("click",function(e){
e.stopPropagation();
});
}

如果可能的话,我想避免任何更多需要的库,因为我打算在 CMS 上使用它,而 jQuery/bootstrap 是当今的标准。

最佳答案

瞧!

感谢您的本地存储功能,真的帮助了我。

https://jsfiddle.net/mssrq8ah/1/

<table id="table">
<thead>
<tr>
<th>h1</th><th>h2</th><th>h3</th>
</tr>
</thead>
<tbody>
<tr>
<td>a1</td><td>a2</td><td>a3</td>
</tr>
<tr>
<td>b1</td><td>b2</td><td>b3</td>
</tr>
</tbody>
</table>
<button id="list">drop</button>

JavaScript

table_hide("#list","#table")
function table_hide( button , table)
{
var cookie_domain = window.location.href + query_params("page")+"hidden";

jQuery(button).attr("data-toggle","dropdown");
jQuery(button).addClass("dropdown-toggle");
jQuery(button).wrap("<div class='btn-group'>");
var list = "";
jQuery("thead").find("tr").first().find("th").each(function(index,element){
list = list + "<li>" +
"<div class='checkbox col-md-6'><label><input type='checkbox' checked value='"+index+"' class='td_hide'>"+jQuery(element).text()+"</label></div>"+
"</li>";
});
jQuery(button).after("<ul class='dropdown-menu col-md-12'>"+list+"</ul>");

jQuery("thead").find("tr").first().find("th").each(function(index , element){
if(localStorage.getItem(cookie_domain+index) == "true")
{
jQuery(".td_hide").eq(index).attr('checked', false);
jQuery("tr").each(function(index2 , element2){
jQuery(this).find("th , td").eq(index).toggle();
});
}
});
jQuery(".td_hide").on("click",function(){
var target_column = jQuery(this).val();
jQuery("tr").each(function(index , element){
if(jQuery(this).find("th , td").eq(target_column).first().css('display') == 'none')
{
localStorage.setItem(cookie_domain+target_column, 'false');
}
else
{
localStorage.setItem(cookie_domain+target_column, 'true');
}
jQuery(this).find("th , td").eq(target_column).toggle();
});
});

jQuery(".dropdown-menu").find("select , .ws-popover-opener , .step-control").on("click",function(e){
e.stopPropagation();
});
}

function query_params(name){
if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
return decodeURIComponent(name[1]);
}

欢迎任何人使用此代码,只要他不声称它是他的〜

页面 query_params 部分是为 WordPress 管理页面正确实例化它。您可以将 cookie_domain 字符串替换为您认为可以使其在您的网站中唯一的任何字符串,这样对两个表的脚本的两次调用就不会弄乱彼此的数据(我花了一些时间才弄清楚)

关于Javascript html表格隐藏列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33712161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com