无法使用jquery </div>在<div>中添加<img/>

时间:2012-12-06 09:02:29

标签: javascript jquery

这就是我在<div id = 'book'>....</div>中添加图片的方法。不合时宜它不会像我预期的那样创建任何img标签。错误是什么?确认路径包含值。

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

更新

这可能是由于路径[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> 

2 个答案:

答案 0 :(得分:2)

您发布的代码是正确的,我用它来创建这个有效的jsFiddle:http://jsfiddle.net/Ah87q/

您应该检查paths[1]是否为空,或者您可以在其他地方找到错误。

答案 1 :(得分:0)

检查代码是否被调用的一种方法是向&quot; append()&#39;添加某种回调函数。方法。虽然它没有,但我们会用这种方式模拟它:

$('#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而不是类(&#39;#&#39;而不是&#39;。&#39;)或类似的东西。此外,可以在元素&#34;#book&#34;之前调用此方法。已加载,因此您可能希望将代码放在

(文档)$。就绪(函数(){

});