Javascript jQuery不以选择器为目标

Javascript jQuery不以选择器为目标,javascript,jquery,variables,object,Javascript,Jquery,Variables,Object,使用javascript/jquery,为什么这样做有效: var vid = document.getElementById("bgvid"); function stopVideo() { vid.pause(); } setTimeout(stopVideo, 2000); 但不是这个: var vid = $('#bgvid'); function stopVideo() { vid.pause(); } setTimeout(stopVideo, 2000); 相反,当我稍

使用javascript/jquery,为什么这样做有效:

var vid = document.getElementById("bgvid");

function stopVideo() {
vid.pause();
}

setTimeout(stopVideo, 2000);
但不是这个:

var vid = $('#bgvid');

function stopVideo() {
vid.pause();
}

setTimeout(stopVideo, 2000);
相反,当我稍后尝试淡入同一视频时,这会起作用:

$('#bgvid').parent().delay(13000).fadeOut(2000);
但这并不是:

vid.parent().delay(13000).fadeOut(2000);
我认为通过id获取视频元素的变量“vid”将相当于$(“#bgvid”)

而且更重要的是,我有一个元素在设定的时间后出现和消失:

var element = $( '#element' );

element.hide().delay(6000).fadeIn(500).delay(6000).fadeOut(500);
我还想在用户点击时使其褪色,因此我尝试了以下方法:

$( document ).on('click', function(){
    element.fadeOut(500);
});

但是当我点击时,什么都不会发生,元素也不会消失。控制台上没有错误。谢谢您的时间。

根据上面的答案,javascript选择器不等于JQuery对象。有关详细信息,请参阅前面的答案:

要获得与javascript选择器相同的DOM对象,必须选择JQuery对象数组中的第一个对象:vid.get(0)

关于淡出问题,在其他事件完成之前,不能在同一ID上激活onClick函数

为了解决这个问题,我建议将元素放在一个新的div中,在这个div上运行show/hide计时器,在元素上运行onClick淡出

var element = $( '#element' );

element.hide().parent().delay(6000).fadeIn(500).delay(6000).fadeOut(500);

$( document ).on('click', function(){
    element.fadeOut(500);
});

祝你好运。

因为
vid
是jQuery对象。您需要
vid.get(0)
。好的,谢谢,最后一个问题呢。为什么元素不会在单击时淡出?不能在同一元素上同时运行两个事件。将元素的父级指定给第一个事件。看我的答案和代码。