0

video objectsHTMLでレンダリングされ たリストがあります

   <div class="video">
        <p class='title'> {{ video.title }} </p>
        <p class='url'> {{ video.url }} </p> 
        <button class="btn btn-primary queue" href="#">queue</button>
    </div>
    <br />

何が欲しい?

ビデオリストをクリックするたびに、タイトルとURLを選択する必要があります

jQuery

$(function(){
    $('body').on('click', '.video', function(event) {
        var title = $(this).closest('.title');
        console.log(title);
        alert(title);
    });
});

console.log(title)ファイアバグのように、ファイアバグで見たときjQuery( )、私が間違っているのは何ですか?

4

3 に答える 3

2

.closest()親チェーンを上っていきます。子オブジェクトを検索する場合は、を使用します.find()。また、コードにより、jQueryオブジェクトではなく、divのコンテンツが必要なように見えます。これらの変更を組み合わせると、次のようになります。

$(function(){
    $('body').on('click', '.video', function(event) {
        var title = $(this).find('.title').html();
        console.log(title);
        alert(title);
    });
});
于 2012-08-16T22:23:23.413 に答える
2

.closest('.title')セレクターに一致する要素が見つかるまで、DOM 階層を上に移動します。次に、そのセレクターの jQuery オブジェクトを返します。

代わりに、たとえばchildrenメソッド (直接の子を検索する) またはfindメソッド (子の子を検索する)を使用して DOM 階層をたどり、テキストまたは HTML コンテンツを使用してテキストを取得します。 htmlメソッドを使用する (jQuery オブジェクトを取得する代わりに):

var title = $(this).children('.title').text();
于 2012-08-16T22:26:39.837 に答える
2
$(function(){
  $('body').on('click', '.video', function(event) {
    var title = $(this).find('.title').html();
    console.log(title);
    alert(title);
  });
});​
于 2012-08-16T22:24:40.543 に答える