9

関数では、(div、span、p) に .html 要素が含まれているかどうかを確認してから、html を削除して新しいコンテンツを追加する必要があります。

これを行う方法がわからない...

私はこれを試しましたが、うまくいきません:

// HERE below I tried to do a check to see if the div's have HTML, but did not work
    if ($('.'+rowName+' div').html) {
        $('.'+rowName+' div').html.remove();
        $('.'+rowName+' span').html.remove();
        $('.'+rowName+' p').html.remove();
    }

フル機能

// Create the Role / Fan rows
function rowMaker (rowName, roleName) {
    //alert(rowName+' '+roleName);

    // HERE below I tried to do a check to see if the div's have HTML, but did not work
    if ($('.'+rowName+' div').html) {
        $('.'+rowName+' div').html.remove();
        $('.'+rowName+' span').html.remove();
        $('.'+rowName+' p').html.remove();
    }

    // Blue button
    $('.'+rowName+' div').append(roleName);
    $('.'+rowName+' div').attr('id', 'blue-fan-'+roleName); 
    var blueButton = ('blue-fan-'+roleName);
    console.log('blueButton = '+blueButton);

    // Genres
    $('.'+rowName+' span').append(roleType);

    // Tags
    $.each(role_Actor, function(index, item) {
        $('.'+rowName+' p').append(item+', ');
    });

    $('#'+blueButton).click(function () {

        console.log('clicked blue button');

        // clears the role_Actor to be used to recapture checkboxes
        role_Actor = [];

        console.log('role_Actor = '+role_Actor);

        //$('#modal-'+roleId).modal();
        $('#modal-'+roleId).modal({persist:true});
        return false;
    });

}
4

6 に答える 6

12

htmlはプロパティではなくメソッドです。 を使用する必要があります()。その後length、String オブジェクトのプロパティを使用して、返された html 文字列の長さを確認できます。

if ( $.trim( $('.'+rowName+' div').html() ).length ) {
    // $('.'+rowName).find('div, p, span').remove();
    $('.'+rowName).find('div, p, span').empty();
}

要素の HTML コンテンツを変更する場合、現在の HTML コンテンツを削除する必要はありません。htmlメソッドは、現在の html コンテンツをオーバーライドします。

于 2013-04-05T02:29:14.760 に答える
6

子の長さを確認してください。

if($('.'+rowName+' div').children().length > 0)
于 2013-04-05T02:29:16.577 に答える
2

これに使用できます.html()(および空白の説明):

var $row = $('.rowName');

if (!$row.find('div').html().trim().length) {
    $row.find('div, span, p').empty();
}
于 2013-04-05T02:30:30.510 に答える
1

試す

if ($('.'+rowName+' div').html().length > 0) {
        $('.'+rowName+' div').empty();
        $('.'+rowName+' span').empty();
        $('.'+rowName+' p').empty();
}
于 2013-04-05T02:30:00.693 に答える