javascript - 如何在追加之前清空div

标签 javascript jquery freebase

我正在使用 Freebase Search Suggest 将某个关键字绑定(bind)到 getJson 请求。问题是我将 getJson 函数和相应的 .append/.prepend 函数绑定(bind)到具有搜索建议的输入字段。现在,如果要清除(.empty)我的包含 getJson 函数结果的 div,我最终将无法附加任何内容。

所以每次我进行搜索时,结果 div 都是空的。如果我不尝试运行空函数并进行第二次搜索,新信息将附加到先前信息之上。

我的网站 www.karsten-tietje.dk/sw

$('#myinput').suggest({key: "<mykey>","filter": "(all type:/music/musical_group )"

        })
        .bind("fb-select", function(e, data) {

$.getJSON("http://ws.spotify.com/search/1/track.json?q="+search_val, function(data) {
  items = [];

        $.each(data["tracks"], function(key, val) {
        items.push('<li class="spot"><span typeof="MusicRecording" property="track"><p>Name: <strong><span property="name">' + val["name"] + '</span></span></strong></p> <p>Album <strong>' + val.album["name"] + '</strong></p><p> Released: <strong>' + val.album["released"] +'</strong></p><p><strong><a href="' + val["href"] +'"><i class="icon-play-sign"></i> Start Spotify</a></strong></p>');
            if ( key === 7 ) 
            {
            return false;
            }
        });

        $('#spotify-div').prepend('<h3 style="border-bottom:1px solid white;">Spotify tracks</h3>');
        $('#spotify').html(items.join('</li>'));
    });
});

这只是我的一些代码片段。我运行多个 getJson 函数。

如何在运行其他函数之前清除/清空我的结果 div?

最佳答案

很多人已经解释了清理的机制,听起来您已经了解了,所以也许缺少的部分是何时进行清理。您可能希望在 Freebase Suggest 选择回调中首先清除一些东西,然后再触发对其他服务(如 Spotify)的任何查询(即在第一个 $.getJSON() 之前)。

与您的问题无关,但不要忘记 Freebase 许可证的归属要求(目前您的网站上未提供)。

编辑:这是添加了空的代码:

$('#myinput').suggest({key: "<mykey>","filter": "(all type:/music/musical_group )"

        })
.bind("fb-select", function(e, data) {
    $('#spotify-div').empty(); // empty the div before fetching and adding new data
    $.getJSON("http://ws.spotify.com/search/1/track.json?q="+search_val, function(data) {
        items = [];
        $.each(data["tracks"], function(key, val) {
            items.push('<li class="spot"><span typeof="MusicRecording" property="track"><p>Name: <strong><span property="name">' + val["name"] + '</span></span></strong></p> <p>Album <strong>' + val.album["name"] + '</strong></p><p> Released: <strong>' + val.album["released"] +'</strong></p><p><strong><a href="' + val["href"] +'"><i class="icon-play-sign"></i> Start Spotify</a></strong></p>');
            if ( key === 7 ) 
            {
            return false;
            }
        });

        $('#spotify-div').prepend('<h3 style="border-bottom:1px solid white;">Spotify tracks</h3>');
        $('#spotify').html(items.join('</li>'));
    });
});

关于javascript - 如何在追加之前清空div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20293680/

相关文章:

javascript - 如何用 javascript 或 jQuery 中的数组值替换字符串中的出现次数?

javascript - 当 django 中未提供任何输入字段时,Ajax 函数不会执行

Freebase - 如何使用 freebase-rdf-latest?

java - Freebase 搜索 API - 获取所有结果

ios - 在Objective-C的NSString中存储带有特殊字符的URL字符串

javascript - Node 中有没有一个好的库用于客户端和服务器之间的异步通信?

javascript - 当父选择为空时,子选择列表中的默认值消失

javascript - JQuery 轮播中的 ASP 转发器

javascript - 堆叠条形图上的单击事件 - ChartJs

java - REST spring 服务和 JQUERY Web 集成最佳实践