2017-04-14 58 views
-4

爲什麼.setAttribute不使用jQuery

$(function() { 
 
    $('textarea').setAttribute('style', 'height:' + ($('textarea').scrollHeight) + 'px;'); 
 
});
<textarea> 
 
    This is very, very long preloading text, I mean vvveeerrryyy, vvveeerrryyy long one! 
 
</textarea>

什麼我做錯了工作,好嗎?我再次檢查它,但找不到任何錯誤

+0

您是否在您的html中添加了[jquery文件](https://code.jquery.com/)? – Dwhitz

+0

謝謝Dhn幫忙 – notte

+0

是的,我確實添加了jQuery文件。 https://jsfiddle.net/txt16afh/ – notte

回答

2
  1. 它的一個attr()
  2. 變化$('textarea').scrollHeight$('textarea')[0].scrollHeight。因爲它的jQuery返回undefined
  3. setAttribute()沒有定義的功能。也不要忘了在你的html中添加jQuery庫。

$(function() { 
 
$('textarea').attr('style', 'height:' + ($('textarea')[0].scrollHeight) + 'px;'); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea>This is very, very long preloading text, I mean vvveeerrryyy, vvveeerrryyy long one!</textarea>

+0

哦,謝謝。所以這只是JavaScript的jQuey翻譯...我明白了,謝謝! – notte

+0

ya ..完全正確.. @ notte – prasanth

+0

'$('textarea')。scrollHeight'返回什麼? – charlietfl

0

jQuery的不具有功能setAttribute()。使用attr()

$(function() { 
 
    $('textarea').attr('style', 'height:' + ($('textarea').scrollHeight) + 'px;'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea>This is very, very long preloading text, I mean vvveeerrryyy, vvveeerrryyy long one!</textarea>

+0

'$('textarea')。scrollHeight'返回什麼? – charlietfl

+0

@charlietfl它應該用'prop()':)來完成 – notte

0

請嘗試以下的jQuery

$('textarea').each(function() { 
    this.setAttribute('style', 'height:' + (this.scrollHeight) + 'px;overflow- y:hidden;'); 
}) 

這裏是工作的jsfiddle:https://jsfiddle.net/1vpxmg4m/

0

您可以使用jQuery height()

012設置高度