三三_两两
2017-07-13 07:54
采纳率: 76.9%
浏览 4.4k

jquery 怎么在append完成创建完成之后在执行each

是这样的, 比如说我现在

  $(".abc).click(function(){
                var ccc = ~~~~
                $("#test").append(ccc);

                $("#test").each(function(){
                            .......
                });
})

执行顺序是这样的, each在append后面, 但是,每次第一次执行的时候
都是元素还没创建完成就执行each了, 怎样可以等append完成创建完成之后在执行each呢? 望大神赐教

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 已采纳

    append又不是异步的,你要获取test下新增的内容肯定没有问题的,你each里面有什么东东,each肯定有问题

    点赞 打赏 评论
  • CN-cheng 2017-07-13 08:17

    这个例子,并不影响$("#test span").length的结果,不知道你是怎么写的

    <p class="abc">click</p>
    <div id="test"></div>
    <script>
        $(".abc").click(function(){
        var ccc = "<span>1</span>";
            $("#test").append(ccc);
            $("#test").each(function(){
                alert($("#test span").length);
            });
        })
    </script>
    
    点赞 打赏 评论
  • 懒人笔记—001 2017-07-13 08:26

    我遇到过这种情况,后面的js偶尔会先执行,循环调用接口的时候很可能后面的先拿到数据,
    我也没解决,所以我做了一个延时处理,等50毫秒早执行下一个,看不出有什么差别所以暂时就将他了,尴尬

    点赞 打赏 评论
  • 张大教主 2017-07-13 08:53
     //$("#test")获取到的是test对象本身,加each没有意义,改动一下
     $(".abc).click(function(){
        var ccc ='<img id="img1" src=""/><img id="img1" src=""/><img id="img1" src=""/>';
        $("#test").append(ccc);
    
        $("#test img").each(function(){
                var height=$(this).css('height');//$(this)可以获取每个img对象本身
        });
        })
    
    点赞 打赏 评论

相关推荐 更多相似问题