1

ネストされた配列を作成し、それをdivに追加します。IDが「name」のボタンをクリックすると、タイトルの付いた映画が配列$ titelBetygに保存され、後で別の配列$filmsに保存されます。新しい$titelBetygを作成するときはいつでも、以前の$filmsをdivから削除してから新しいものに置き換えたいと思います。どうすればよいですか?

Javascript

$(document).ready(function(){

var $films = [];

$('#name').keyup(function(){
            $('#name').css('background-color', 'white');
});

$('#options').change(function(){
            $('#options').css('background-color', 'white');
});

$("#button").click(function(){
    var $titelBetyg = [];

    var $titel = $('#name').val();
    var $betyg = $('#options').val();

    if($titel == ""){
        $('#name').css('background-color', 'red');
        alert("Fail");
    }
    else if($betyg == "0"){
        $('#options').css('background-color', 'red');
        alert("Fail");
    }
    else{

        $titelBetyg.push($titel);
        $titelBetyg.push($betyg);
        $films.push($titelBetyg);

        // here is where i need to remove it before appending the new one

        $('#rightbar').append("<ul>");
        for(i=0; i<$films.length; i++){
            $('#rightbar').append("<li>" + $films[i][0] + " " + $films[i][1] + "</li>" + "<br>");
        }
        $('#rightbar').append("</ul>");
    }
});

$('#stigande').click(function(a,b){

});
$('#fallande').click(function(){

});

});
4

3 に答える 3

1

このように使用します(そして他のものの代わりに.empty()追加します):<ul>

var $ul = $("<ul>");
for (var i=0; i<$films.length; i++) {
    $ul.append("<li>" + $films[i][0] + " " + $films[i][1] + "</li><br>");
}
$('#rightbar').empty().append($ul);

ところで、すべてを空にして再構築するよりも、新しいものだけを追加する方が簡単かもしれません。

$('#rightbar ul').append("<li>" + $titel + " " + $betyg + "</li><br>");

からリストの内容のみ(および他には何も)を削除するには#rightbar、次を使用できます。

var $ul = $('#rightbar ul').empty();
if (!$ul.length) // if nonexistent…
    $ul = $("<ul>").appendTo('#rightbar'); // create new one


for (var i=0; i<$films.length; i++)
    $ul.append("<li>" + $films[i][0] + " " + $films[i][1] + "</li>");
于 2013-02-27T14:52:32.593 に答える
0
document.getElementById('rightbar').innerHTML = '';

そうすれば、右バーは完全に空になります。

于 2013-02-27T14:49:20.707 に答える
0

コンテナの内容を削除するだけで済みます。したがって、.empty()関数を使用します

$('#rightbar').empty().append("<ul>"); //It will empty the content and then append
for(i=0; i<$films.length; i++){
    $('#rightbar').append("<li>" + $films[i][0] + " " + $films[i][1] + "</li>" + "<br>");
}
$('#rightbar').append("</ul>");
于 2013-02-27T14:51:34.367 に答える