我试图在javascript(jquery库)中编写一个简单的if语句,它只是在页面中找到div.video元素,如果它能找到它,则将变量'arrows'设置为true,如果它不能假的。
这是我到目前为止所做的:
jQuery(document).ready(function () {
// Hiding of prev & next arrows on movie pages.
var arrows = false;
if (jQuery('body').find('div.video'))
{
arrows = false;
} else {
arrows = true;
}
if (
arrows == true
){
jQuery('a.prev').show();
jQuery('a.next').show();
} else {
jQuery('a.prev').hide();
jQuery('a.next').hide();
}
});
我正在使用它的页面目前正在开发中,但这里是dev链接: 第一个是带有div.video元素的示例页面,因此应隐藏箭头:
此第二个链接不包含div.video项,而是包含div.photo元素。由于div.video不在页面上,因此应在此处显示箭头。
奇怪的是,if语句会隐藏箭头,但它会在所有页面上显示,而不仅仅是视频内容。
任何帮助都会非常感激,因为Firebug似乎没有在我的js中注册任何类型的错误。
答案 0 :(得分:2)
当jQuery找不到任何元素时,它会返回一个空列表,所以你的语句总是正确的。
尝试:
if(jQuery("div.video").length > 0){
arrows = false;
} ....
答案 1 :(得分:1)
size()
函数可以帮助您衡量选择器匹配的元素的数量。此外,没有必要包装body
元素以选择其元素。
例如:
$(document).ready
(
function()
{
var arrows = $("div.video").size() === 0;
if(arrows)
{
$("a.prev, a.next").show();
}
else
{
$("a.prev, a.next").hide();
}
}
);