2016-08-10 7 views
1

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'); 
+0

あなたはjqueryのライブラリが含まれていますか? – brk

答えて

0

あなたは、このコードを試すことができます:playerids [i]が "playerid"

0

のようなだけプレイIDを持っているので、IDを割り当てている何あなたのコードで明らかに間違っている

var video_id = jQuery('#' + playerids[i]).attr('data-id'); 

#符号なしセレクタjQuery(playerids[i]).attr('data-id');

に正しい構文は次のようになります jQuery('#' + playerids[i]).attr('data-id');

idセレクタを使用すると、暗黙的でない場合は、代わりにこれを試してみてください。

jQuery(".video-player").each(function(index) { 
    console.log(index + ": " + jQuery(this).attr('data-id')); 
}); 
+0

「#」は付いていませんが、遡及的には明らかですが、追加しても、.attr(または.data)は関数ではありません。 – supernaut

+0

console.logの使用コンソールに適切な値がエコー表示されているのがわかりますが、私はその方法に慣れていません - どのようにそれらの値を自分の関数で取り出すことができますか? (そしてその方法は良い方法ですか?) – supernaut

関連する問題