我正在尝试为自动更新当前歌曲的广播电台制作播放器,问题是我不希望它更新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);
}
});
});
};
答案 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
中要方便得多。