前端页面:一直报Cannot set property 'height' of undefined

1、出现错误的例子,只拷贝了项目中关键出现问题的部分

例子中明明写了style=’height:16px’这个属性,但是为什么还说height未定义呢

通过打印发现:cks.each(function () {
            autoTextAreaHeight($(this));
          });中的$(this)取出来被当成数组处理了,所以要加上[0]

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
    <title>菜鸟教程(runoob.com)</title>
    <script>
         var element = "<span>" +
                "<input type='checkbox' value='" + 0 + "'>" +
                "<textarea  style='height:16px; width:100px;margin-left:7px;'  class='show_text'  oninput='autoTextAreaHeight(this)' "+
                ">asdsaaaaaaaaaaaaawqdqwwqa</textarea>"
        //$.find("body").append(element);
        $(window).load(function(){ 
            //用jq在body中动态添加元素
            $(document.body).append(element);
            $(document.body).append(element);
            //初始化调用文本域高度自适应方法
            $(function () {
                var cks = $(".show_text");
                cks.each(function () {
                    autoTextAreaHeight($(this));
                })
            }) 
        });
        //文本域自适应
         function autoTextAreaHeight(o) {
           o.style.height = o.scrollTop + o.scrollHeight + "px";
        } 
    </script>
</head>
<body>
</body>
</html>

修改成

cks.each(function () {

autoTextAreaHeight($(this)[0]);

})

    原文作者:今天_明天
    原文地址: https://segmentfault.com/a/1190000018271120
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞