-2

これは、 の中に画像を追加する方法です<div id = 'book'>....</div>。残念ながら、期待どおりに img タグが作成されません。エラーは何ですか?パスに value が含まれていることが確認されました。

$('#book').append('<img src ="' + paths[1] + '" style = "width:100%;height:100%;top:1px;left:1px" alt = "flip book" id = "logo-cover" />');

アップデート:

これは、path[1] 値が原因である可能性があります。for ループを使用して配列を反復しています。空の値である可能性がありますが、追加する前にチェックしたのでスキップする必要があります...

スクリプト全体

    <script>
function load_pages(page) {
    $.ajax({
        type: "GET",
        url: "scandir.php",
        data: "page=" + page,
        dataType: 'json',
        success: function (data) {
            console.log(data);
            $.each(data, function(i,paths){
                    var status = 'nonFinal';
                    if (paths[0] == '' && i == 'next'){
                        status = 'suspectFinal';
                    }
                    if (paths[1] == '' && i == 'next' && status == 'suspectFinal'){
                        status = 'final';
                        page--;
                        load_pages(page);
                        status == 'nonfinal'
                    }
                    else{
                        if (paths[0] != ''){
                            console.log('method called'); 
                            $('#book').append($('<img>').attr('src',paths[0]).css({'width':'100%','height':'‌​100%','top':1px;}).attr('id','logo-cover'));
                        }

                        if (paths[1] != ''){
                            console.log('method2 called'); 
                            $('#book').append($('<img>').attr('src',paths[1]).css({'width':'100%','height':'‌​100%','top':1px;}).attr('id','logo-cover'));
                        }
                    }
            });
            }
    });
}
    $(document).ready(function(){
    var inputPage = '1';
    if (inputPage == '1'){
        inputPage = '2';
    }

    load_pages(inputPage);
    });

</script> 
4

2 に答える 2

2

投稿されたコードは正しいです。これを使用して、この動作する jsFiddle を作成しました: http://jsfiddle.net/Ah87q/

null でないかどうかを確認するpaths[1]か、別の場所でエラーを見つける必要があります。

于 2012-12-06T09:13:36.587 に答える
0

コードが呼び出されたかどうかを確認する方法の 1 つは、何らかのコールバック関数を「append()」メソッドに追加することです。1 つもありませんが、次のようにシミュレートします。

$('#book').append('<img src ="' + paths[1] + '" style = "width:100%;height:100%;top:1px;left:1px" alt = "flip book" id = "logo-cover" />').each(function(){ 

console.log('method called'); 
// or with an alert
alert('method called'); 

});

まったく呼び出されない場合、問題はクラスの代わりに id を使用している ('.' ではなく '#') か、類似のものである可能性があります。また、このメソッドは要素「#book」がロードされる前に呼び出される可能性があるため、コードを

$(document).ready(function(){

});

于 2012-12-06T09:16:46.777 に答える