【发布时间】:2015-12-11 15:47:03
【问题描述】:
我正在使用http://codepen.io/anon/pen/gKrln 复制代码并将其与我的表格数据混合。 它适用于 Firefox 和 chrome。
我有零钱:
document.getElementsByClassName('light-table-filter2');
致inputs = $(".light-table-filter");
但我不确定我会如何改变
document.getElementsByClassName(_input.getAttribute('data-table')); 让它在 IE8 上运行?
我所做的更改仅适用于 firefox 和 chrome ,我怎样才能让它在 IE8 上运行?
var LightTableFilter;
LightTableFilter = (function() {
var _filter, _input, _onInputEvent;
_input = null;
_onInputEvent = (function(_this) {
return function(e) {
var row, table, tables, tbody, _i, _j, _k, _len, _len1, _len2, _ref, _ref1;
_input = e.target;
tables = document.getElementsByClassName(_input.getAttribute('data-table'));
for (_i = 0, _len = tables.length; _i < _len; _i++) {
table = tables[_i];
_ref = table.tBodies;
for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
tbody = _ref[_j];
_ref1 = tbody.rows;
for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) {
row = _ref1[_k];
_filter(row);
}
}
}
};
})(this);
_filter = function(row) {
var len, n, text, val, vals, _i, _len;
text = row.textContent.toLowerCase();
vals = _input.value.toLowerCase().split(' ');
len = vals.length;
n = 0;
for (_i = 0, _len = vals.length; _i < _len; _i++) {
val = vals[_i];
if (text.indexOf(val) !== -1) {
n++;
}
}
return row.style.display = n === len ? 'table-row' : 'none';
};
return {
init: function() {
var input, inputs, _i, _len, _results;
inputs = $(".light-table-filter");
_results = [];
for (_i = 0, _len = inputs.length; _i < _len; _i++) {
input = inputs[_i];
_results.push(input.oninput = _onInputEvent);
}
return _results;
}
};
})();
这是正文:
<section class="container">
<input type="search" class="light-table-filter" data-table="order-table" />
<table class="order-table" >
<thead><th>Name</th><th>Department</th><th>Ext:</th><th>Email</th><th>Title Name</th><th>Cell Phone</th></thead>
<tbody>
<cfoutput query="Branch" >
<tr>
<td >#emp_namefirst# </td>
<td >#dept_name#</td>
<td >#emp_ext#</div></td>
<td >#EMP_EMAIL# </td>
</tr>
</cfoutput>
</tbody>
</table>
</section>
【问题讨论】:
-
如果是这种情况,我猜 getElementsByClassName 不起作用:stackoverflow.com/questions/9568969/…
-
我尝试了 tables = document.querySelectorAll(_input.getAttribute('data-table'));已经,它不适用于任何浏览器
-
有什么理由不使用 jQuery,所有这些头痛都可以避免吗?
-
从上面提到的代码来看,jQuery 在起作用。
-
这个问题的意义远不止
getElementsByClassName。不应仅以此为基础将其标记为重复。
标签: javascript jquery internet-explorer-8