You TubeのビデオIDを含むショートコードに基づいて、カスタムスタイルのビデオプレーヤーを作成するWordPressプラグインを構築し、うまく機能します。しかし、今私はそれを同じページ上の複数のビデオを許可するように変換する必要があります。だから私はクラス名ですべてのプレーヤーの要素をつかんで、そのIDを取得しています。 YouTubeの動画IDは、data-id
という属性を持つ各プレーヤーに追加されます。プラグインのシングルビデオ版では、$(#playerid).att('data-id')
を使用して属性を取得できます。 v2.0で2つの奇妙なことが起きました...まず、$
を使用してjQueryオブジェクトを指定することはできません。なぜならWordPressは互換モードを使用しているからです(なぜか、 )、それは簡単に回避できます。私が立ち往生している第二は、attr
を使うことができないということです。jQuery - .attrは関数ではありません
attrとは言いません。
私は.ATTR( 'データ-ID')、.dataセクション( 'ID')を試みたが、バニラ.getAttributeへの変換が、何も動作しますしていません。変数が正しいオブジェクトを指していることを確認しましたが、その属性を取得できません。
私はちょうど...
var playerids = [];
var players = document.getElementsByClassName("video-player");
for (x = 0; x < players.length; x++) {
playerids[x] = players[x].id;
}
//for each vidid, create a player
for (i = 0; i < players.length; i++) {
var video_id = jQuery(playerids[i]).attr('data-id');
}
NEW INFOあなたがattr
に到達するまで、すべてがチェックアウト最初の行を、投稿します: はバニラからのjQueryのグローバル変数を変更し、そして今、私が使用することができますが.attrまたは.dataをグローバル変数に追加します。ここに私の新しい、働くコードがあります...なぜ、ローカルの変数がしなかったとき、これは機能しますか?
//find all player divs
var players = jQuery(".video-player");
//get the player div ids
var playerids = [];
for (x = 0; x < players.length; x++) {
playerids[x] = players[x].id;
}
//for each player div, get vidid and create player
for (i = 0; i < players.length; i++) {
var this_video = jQuery(players[i]).data('id');
あなたはjqueryのライブラリが含まれていますか? – brk