gpt4 book ai didi

javascript - 如何编辑此表过滤器脚本以通过预定义的搜索字符串获取结果?

转载 作者:行者123 更新时间:2023-11-28 10:46:22 25 4
gpt4 key购买 nike

我正在使用这个脚本:

var LightTableFilter = (function(Arr) {

var _input;

function _onInputEvent(e) {
_input = e.target;
var tables = document.getElementsByClassName(_input.getAttribute('data-table'));
Arr.forEach.call(tables, function(table) {
Arr.forEach.call(table.tBodies, function(tbody) {
Arr.forEach.call(tbody.rows, _filter);
});
});
}

function _filter(row) {
var text = row.textContent.toLowerCase(), val = _input.value.toLowerCase();
row.style.display = text.indexOf(val) === -1 ? 'none' : 'table-row';
}

return {
init: function() {
var inputs = document.getElementsByClassName('light-table-filter');
Arr.forEach.call(inputs, function(input) {
input.oninput = _onInputEvent;
});
}
};
})(Array.prototype);

document.addEventListener('readystatechange', function() {
if (document.readyState === 'complete') {
LightTableFilter.init();
}
});

})(document);

这个输入:

<input type="search" class="light-table-filter" data-table="order-table">

当我在过滤器输入中输入内容时,它会过滤一个表格,因此我只能看到其中与文本匹配的条目。像这样:http://codepen.io/chriscoyier/pen/tIuBL 。现在我有一个带有日期列的表格。我想只显示当前月份的日期。因此不再需要用户输入。我尝试将输入替换为当前月份,但没有成功。 :-/有人有建议吗?

最佳答案

如果这是在客户端上完成的,则意味着您发送的数据超出了所需的数据,并且您相信客户端时间设置是准确的。因此,最好在服务器上执行此操作,这样您就不会获得超出所需的数据,不会向客户端发送冗余数据,并且不依赖于客户端时间设置或脚本。

无论如何,假设您的日期格式为 dd/mm/yyyy,则可以使用以下方法获取所需格式的当前月份:

var m = new Date().getMonth() + 1;
var monthString = '/' + ('0' + m).slice(-2) + '/';

现在隐藏行时使用:

row.style.display = text.indexOf(monthString) === -1 ? 'none' : '';

当然,您可以将monthString修改为任何适合的内容。

我更喜欢通过将 display 设置为 '' (空字符串)来撤消隐藏内容,这样它们就会采用默认或继承的样式,无论是什么,我都不必这样做知道它是什么。

我还建议您仅定位包含日期的单元格,以防该行的 textContent 将其他一些字符串连接成误报,因此:

var text = row.cells[i].textContent.toLowerCase()

其中i是包含日期的单元格的索引。

关于javascript - 如何编辑此表过滤器脚本以通过预定义的搜索字符串获取结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42156597/

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