Я использую http://codepen.io/anon/pen/gKrln копировать код и смешивать его с моими табличными данными. Он работает на firefox и chrome.Фильтр поиска не работает на IE 8
У меня есть изменения:
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 не работает, если это case: http://stackoverflow.com/questions/9568969/getelementsbyclassname-ie8-object-doesnt-support-this-property-or-method – dbarnes
У меня есть try tables = document.querySelectorAll (_input.getAttribute ('data-table')); уже и он не будет работать для любого браузера – jfishbow
Любые причины, по которым вы не используете jQuery, можно избежать этой головной боли? – dbarnes