Freebase Search Suggestを使用して、特定のキーワードをgetJsonリクエストにバインドしています。問題は、getJson関数と対応する.append/.prepend関数を、検索候補を含む入力フィールドにバインドすることです。 getJson関数の結果を含むdivをクリア(.empty)したい場合、最終的には何も追加できなくなります。
したがって、検索を実行するたびに、結果のdivは空のままになります。空の関数を実行して2回目の検索を実行しないと、新しい情報が前の情報の上に追加されます。
私のサイト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をクリア/空にするにはどうすればよいですか?
elementを選択し、以下のようにHTML
空白を入れます
jQuery('#selector').html('');
次に、以下のような同じセレクタにappend
jquery関数を適用した後
jQuery('#selector').append("<p>text</p>");
IDが「spotify」のHTMLの内部htmlをクリアすることでもこれを行うことができます。
$('#spotify').empty();
JQueryを使用すると、コンテンツの要素を空にし、コンテンツを追加/追加する多くの方法があります。
1つは.empty();
( Documentation )
_$('#spotify-div').empty().prepend('<h3>YourHTML Here</h3>');
_
もう1つは.html( [ html ] );
( Documentation )
_$('#spotify-div').html('').prepend('<h3>YourHTML Here</h3>');
_
Htmlを変更していて、イベントを保持することを心配していない場合は、.html( 'Your HTML' );
関数を介してhtmlを渡すことができます。
_$('#spotify-div').html('<h3>YourHTML Here</h3>');
_