2017-05-12 6 views
1

私は自分自身にこの$("a[href*='video']")行を説明することができないこのコード行を持っています。あまりにも多くの謎があります。

$("a[href*='video']").click(function() { 
    var id = $(this).attr("href"); 
    playVideo(id); 
}); 

function playVideo(id) { 
    var $video = $(id + " video")[0]; 
    $video.play(); 

    $(".close").click(function() { 
     $video.pause(); 
     $video.currentTime = 0; 
    }); 
} 
+1

すべての 'a'タグを取得することを意味します。現在の 'a'タグの' href'属性に 'video'という単語が含まれていれば、その属性の' href'を取得し、それを 'playVideo'関数に渡します。その文字列+単語 "ビデオ"を再生し、次にそのビデオを再生する。 –

+1

jQueryセレクタは[徹底的に文書化されています](http://api.jquery.com/)、そのほとんどはCSSセレクタです。[セレクタ](http://www.w3.org/)で完全に文書化されています。 TR/css3-selectors /)と[MDN上で](https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Selectors)を参照してください。 –

+0

このサイトには、回答の大きな部分が含まれていることが判明しました。「」のhttps://www.w3schools.com/cssref/css_selectors.asp – 71GA

答えて

2

$("a[href*='video']")

それはjQueryのattribute contains selectorです。これにより、すべてのリンク<a>の要素のうち、hrefのvideoがリンクに含まれているArrayが返されます。このリンクのような

<a href="http://google.com/video/abc">

がURLで動画が含まれている...そう、それが選択されます。

+0

*の要素は、その「href」属性に 'video'を含んでいます。この文脈では、リンクがあいまいである可能性があります。 – enguerranws

+1

* "これは配列を返します..." *いいえ、そうではありません。配列のような* jQueryオブジェクトを返しますが、配列ではありません。 –

+0

@ T.J.Crowderが合意した!その型は 'object'型ですが、配列として使うことができます。' $( "a [href * = 'video']")[0] 'はオブジェクトから最初の要素を返します。 –

1

このセレクタは、最初にすべてのアンカーを対象とするもので、ブラケット表記はこれらの要素の属性を対象としています。このクラス可能性があり、ID、値、HREFなど

*あなたは、ドキュメント内のすべてのものをターゲットにしている*ターゲット場合は、ワイルドカードセレクタ

です。このコンテキスト内では、hrefに文字列 'video'が含まれるすべてのアンカーを対象としています。

構文は狂っていますが、意味があります。これは、サイト内のすべての動画リンクを簡単にターゲットにする方法です。

+0

'$(" a [href * = 'video'] ")'の 'a []'は何をしますか?配列を作成するだけですか? – 71GA

+0

良い質問、かなり可能性があります。私はそれが単なる構文だと思っていますが、ここで詳しく読むことができますhttps://developer.mozilla.org/en/docs/Web/CSS/Attribute_selectors – Pixelomo

関連する問題