一、出现错误的例子,只拷贝了项目中关键出现问题的部分html
例子中明明写了style='height:16px'这个属性,可是为何还说height未定义呢jquery
经过打印发现: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 () {app
autoTextAreaHeight($(this)[0]);
})this