0

こんにちは私はsongsと呼ばれるjavaScriptファイルに次のコードを持っています:

var marchMD = new Array();
marchMD[0] = ["Save the Best for Last - Vanessa Williams"];
marchMD[1] = ["Informer - Snow"];
marchMD[2] = ["The Sign - Ace of Base"];    

for (var i=0;i<marchMD.length; i++) {
    songList = songList + '<p><a href="#" id="songtext">' + marchMD[i] + '</a></p>';
}
$('#songs').html(songList);

これがロードされると、ファイルyoutubeの次のjavaScriptが上記のコードに反応します。

$(document).ready(function() {

    $('#songs p').click(function(e) {

        var $el = $(e.currentTarget);
        var search = $el.html();
        //alert(search);
        //return;

        var keyword = encodeURIComponent(search);
        var yt_url = 'http://gdata.youtube.com/feeds/api/videos?q=' + keyword + '&format=5&max-results=1&v=2&alt=jsonc';

        $.ajax({
            type:"GET",
            url: yt_url,
            dataType: "jsonp",
            success: function(response) {
                if(response.data.items) {
                    $.each(response.data.items, function(i, data) {
                        var video_id = data.id;
                        var video_frame = "<iframe width='420' height='315' src='http://www.youtube.com/embed/" + video_id + "' frameborder='0' type='text/html'></iframe>";
                        $("#ytVid").html(video_frame);
                    });
                } else {
                    $("#ytVid").hmtl("<div id='no'> No Video</div>");
                }
            }
        });
    });
});

上記のコードにあるアラートは、何かが返されるかどうかを確認するためのテストでしたが、返されません。ただし、コードからhref htmlタグを削除すると、これは機能します。私が持っている理由は、誰かが曲の1つをクリックすると、ページの上部に移動してその曲をYouTubeで表示するためです。

ありがとう

4

2 に答える 2

2

リンクを含む要素にリンクのみが含まれることがわかっている場合は、次text()のようにHTMLフォーマットを削除するために使用できます。

 var search = $el.text();
于 2012-04-26T16:35:12.837 に答える
0

<a>そこにある場合はvar search = $el.html();、テキストだけでなくタグも含めます。これを試して:

   $('#songs p').click(function(e) {
        var search = $(this).find('a').html();
于 2012-04-26T16:46:07.447 に答える