我有以下脚本:
<script type='text/javascript'>
//<![CDATA[
$(document).ready(function() {
setInterval(function() {
if ($('#wrapper').css('visibility') == 'hidden') {
document.location.href = "http://www.example.com";
}
}, 3000)
})
//]]>
</script>
您看到只使用 #wrapper ,我想添加更多两个ID #footer 和 #sidebar
注意:我可以为每个id创建单独的javscript,但这是内存使用者,大量的页面加载和许多javascripts。
所以我想问一下,如果有任何方法可以在该脚本中添加多个ID,请分享我给出的两个ID。感谢。
答案 0 :(得分:2)
您可以在一次调用jQuery中包含multiple selectors:
$('#wrapper, #footer, #sidebar')
但是,对.css()
的结果调用只会返回结果集中的第一个元素。但您可以轻松地在结果集上调用.each()
:
$('#wrapper, #footer, #sidebar').each(function () {
if ($(this).css('visibility') == 'hidden') {
document.location.href = "http://www.example.com";
}
});
或者甚至可能是这样的:
var elements = $('#wrapper, #footer, #sidebar');
setInterval(function() {
for (var i = 0; i < elements.length; i++) {
if ($(elements[i]).css('visibility') == 'hidden') {
document.location.href = "http://www.example.com";
}
}
}, 3000)
这样您就不需要每次都重新查询DOM(除非您希望这些元素发生变化)。
答案 1 :(得分:0)
这是你的意思吗?
<script type='text/javascript'>
var ids= ["#wrapper", "#footer", "#sidebar"];
for (var i = 0 ; i < ids.length ; i++) {
$(document).ready(function() {
setInterval(function() {
if ($(ids[i]).css('visibility') == 'hidden') {
document.location.href = "http://www.example.com";
}
}, 3000)
})
}
</script>
答案 2 :(得分:0)
//if any of them are hidden, do your stuff
if ($('#wrapper, #body, #sidebar').filter(':hidden').length > 0) {
document.location.href = "http://www.example.com";
}