一、出現錯誤的例子,只拷貝了項目中關鍵出現問題的部分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