jQuery存储设置

时间:2010-04-11 18:12:41

标签: jquery xml ajax

我正在尝试为自动更新当前歌曲的广播电台制作播放器,问题是我不希望它更新UI(updateSongIMG),除非歌曲实际发生了变化。我有一个名为settings_songid的隐藏div来存储歌曲ID,它应该检查XML文件中的值,如果它不同,那么它应该更新它。问题是下面的函数实际上不起作用,它可以很好地提取所有XML数据,但它没有调用updateSongIMG,因为它没有'if'。

function loadXML() {
    $.get('player.xml', function(d){
        $(d).find('onair').each(function(){
            var $onair = $(this); 

            var show_name = $onair.find('showname').text();
            var song_l1 = $onair.find('songline1').text(); 
            var song_l2 = $onair.find('songline2').text();  
            var song_img = $onair.find('songimg').text(); 

            var song_id = $onair.find('song_id').text(); 
            var old_song_id = $("#settings_songid").html();

            if (!old_show_id==show_id){
                $("#settings_songid").html(song_id);

                updateSongIMG(song_img,song_l1,song_l2);
            }
        });
    });
};
​

2 个答案:

答案 0 :(得分:2)

这些定义的old_show_id和show_id在哪里?!

您可以将http://api.jquery.com/jQuery.data/用于此类内容。

答案 1 :(得分:0)

尝试.text()

 var old_song_id = $("#settings_songid").text();

并且您的if子句是错误的。我认为您的意思是song而不是show

if(old_song_id != song_id)

要存储任意数据,请查看jQuery的.data()方法。这比将数据存储在隐藏的div中要方便得多。