0

嗨,我在名为 song 的 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 标记,则此方法有效。我拥有它的原因是,当有人单击其中一首歌曲时,它会将他们带到页面顶部以在 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 回答