为什么这个工作为什么我不能选择使用.play()使用jQuery选择视频?
var v = document.getElementsByTagName("video")[0];
v.play();
这
$("#movie").play();
或本
$("video").play();
不? (假设在页面上只有一个视频元素)rarther
为什么这个工作为什么我不能选择使用.play()使用jQuery选择视频?
var v = document.getElementsByTagName("video")[0];
v.play();
这
$("#movie").play();
或本
$("video").play();
不? (假设在页面上只有一个视频元素)rarther
因为当你,你最终会调用该对象上的功能里面,其实并不是一个真正的DOM节点的jQuery选择的对象上使用.play()
而是一个集合的DOM节点包装在一个jQuery对象中。那个对象只是不知道任何播放函数。
事实上,当选择器没有触及任何东西时,jQuery对象甚至可以是空的,对该包的所有调用仍然有效,但由于没有目标,它不会产生任何效果。
如果您以类似方式(var v = document.getElementsByTagName("video")[0];
)以数组方式调用该程序包,并且内部至少有一个DOM节点,则会获得一个真正的DOM节点作为返回对象。该节点知道.play()
函数。
有两个问题。在你的页面上可能没有id为“video”的元素,所以第一个jQuery语句没有返回任何东西。第二条语句的问题是它返回一个没有play()方法的数组。
第二个问题是,jQuery返回一个jQuery对象,您必须获取底层DOM元素才能调用“native”方法。
所以,你可能寻找的是这样的:
$("viedeo")[0].play():
这将调用第一个DOM元素上的play()方法返回。
为什么downvote? – 2012-01-16 07:22:38
打败我,你得到了和我一样的信息,只是不像图形包装... +1从我:) – bardiir 2012-01-16 07:59:50