爲什麼這個工作爲什麼我不能選擇使用.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