我有一个网页,其中包含由datatables jQuery插件生成的表格。该表的代码如下所示:
<div id="countdown" style="display: none;">Countdown <span id="counter"></span></div>
<table id="zones">
<thead>
<tr>
<th>Column Header 1</th>
<th>Column Header 2</th>
</tr>
</thead>
<tbody></tbody>
</table>
因此脚本会添加<tbody>
内的所有内容。我可以在Chrome开发工具中查看完整的表格内容,但不能在页面来源中看到。
我想要做的是检查表中的任何元素是否具有类icon-refresh
,如果是这样,请激活我的js代码,如下所示:
$(document).ready(function() {
function countdown(elementName, minutes, seconds)
{
var element, endTime, hours, mins, msLeft, time;
function twoDigits(n)
{
return (n <= 9 ? "0" + n : n);
}
function updateTimer()
{
msLeft = endTime - (+new Date);
if (msLeft < 1000) {
setTimeout(function () {
window.location.reload(true);
}, 5000);
} else {
time = new Date(msLeft);
hours = time.getUTCHours();
mins = time.getUTCMinutes();
element.innerHTML = (hours ? hours + ':' + twoDigits(mins) : mins) + ':' + twoDigits(time.getUTCSeconds());
setTimeout(updateTimer, time.getUTCMilliseconds() + 500);
}
}
element = document.getElementById(elementName);
endTime = (+new Date) + 1000 * (60*minutes + seconds) + 500;
updateTimer();
}
if ($('table').find('.icon-refresh')) {
countdown('counter', 0, 60 - new Date().getSeconds());
document.getElementById('countdown').style.display = 'block';
}
});
正如您所看到的,它应该倒计时到下一整分钟刷新页面。问题在于$('table').find('.icon-refresh')
,它似乎总是正确的,因为即使没有一个元素具有类icon-refresh
,也会显示倒计时。我也试过$('.icon-refresh').length
,但是这个没有找到任何元素。有一个简单的解决方案吗?
另外,第二件事是,由于数据表中存在分页,因此每次用户单击<a tabindex="0" class="paginate_button"></a>
元素时都应检查该条件。
提前感谢您的帮助!
答案 0 :(得分:0)
编辑,误解了OP。
第二个脚本在第一个脚本完成测试后加载。因此,<script>
会返回.length
,因为此时0
不存在。
onload可以直接在标签上使用,例如标签
在页面上加载表格后运行倒计时脚本。例如:.icon-refresh