Предположим, у вас есть таблица следующим образом:
<div id="rowsNumber"></div>
<table id="myTable">
<tr>
<td>One</td>
<td>Two</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
</tr>
</table>
В некоторых браузере строка данных таблиц идет завернута внутри TBODY тега следующим образом:
<div id="rowsNumber"></div>
<table id="myTable">
<tbody>
<tr>
<td>One</td>
<td>Two</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
</tr>
<tbody>
</table>
так определить функцию так:
var getTableRowCount = function(tableNode){
var tbody = tableNode.getElementsByTagName('tbody')[0];
if(tbody){
return tbody.getElementsByTagName('tr').length;
}else{
return tableNode.getElementsByTagName('tr').length;
}
}
И вызовите функцию прохождения узла таблицы в качестве параметра например:
var count = getTableRowCount(document.getElementById('myTable'));
document.getElementById('rowsNumber').innerHTML = 'Total rows = ' + count;
Теперь, если вы хотите наблюдать слушатель так, что всякий раз, когда какие-либо tr
из таблицы тя При наличии видимости вам нужно иметь MutationObserver
, наблюдая за tr строк. Для того, чтобы добавить мутации наблюдателя можно написать код так:
var observer = new MutationObserver(function(mutations) {
var count = getTableRowCount(document.getElementById('myTable'));
document.getElementById('rowsNumber').innerHTML = 'Total rows = ' + count;
});
//find the target on which to observe
var target = document.querySelector('table tr');
observer.observe(target, {
attributes: true
});
_ «какие-либо комментарии относительно того, как вызвать функцию» _ переполнение стека на самом деле не место для покрытия таких основ - есть много обучающих веб-сайтов и/или книги (помните те!), которые покрывают эту землю. –
По крайней мере, проверьте [codecademy] (http://codecademy.com) и дайте им курс JavaScript. Это бесплатно и научит вас основам. – phoenixlaef
Это прекрасно подходит для подсчета видимых строк: 'document.getElementById ('rowscount'). InnerHTML = $ ('tr: visible'). Length-1'. Однако он не обновляется, не нужно ли вставлять onChange в этот оператор? –