Javascript 为什么in-textarea值属性与JS值不同

Javascript 为什么in-textarea值属性与JS值不同,javascript,css,textarea,Javascript,Css,Textarea,最初我试图改变textarea的外观,但它是空的,只有CSS。我认为这会起作用,但正如您在写东西和单击按钮时看到的,值是不同的。有人知道这样做的解决方案吗?CSS或JS是必需的?有了输入,这可能吗 var-area=document.querySelector(“textarea”); var btn=document.querySelector(“按钮”); btn.addEventListener(“单击”,函数(){ var值=面积值; var attr_value=area.getAt

最初我试图改变
textarea
的外观,但它是空的,只有
CSS
。我认为这会起作用,但正如您在写东西和单击按钮时看到的,值是不同的。有人知道这样做的解决方案吗?
CSS
JS
是必需的?有了
输入
,这可能吗

var-area=document.querySelector(“textarea”);
var btn=document.querySelector(“按钮”);
btn.addEventListener(“单击”,函数(){
var值=面积值;
var attr_value=area.getAttribute(“值”);
警报(“值:“+value+”\nattr值:“+attr\u值”);
});
textarea{
背景:红色;
过渡:背景轻松0.5s;
}
textarea[值=”]{
背景:灰色;
}



点击我
Textarea HTML元素没有
属性。它们的价值在于它们的内在文本内容

因此,
value
属性将始终获取正确的输入值

getAttribute(“value”)
将获取textarea的
value
属性的值,如果您给它一个值的话。但是,由于这个属性在textarea元素上是非标准的,所以无论如何,您不应该使用它


:)

您最初的问题的解决方案可能是使用一个小js代码段,因为我也无法让它使用
:empty


textarea没有值属性-input有-这是您认为正在做的吗?您需要访问
属性
,而不是
属性
。非常不同的事情。如果可能,请始终选择访问属性而不是属性。正确。控件确实具有值属性。但元素也可以被赋予(可选)值属性。
具有
属性。看看迈克,你把属性误认为属性了。在DOM中由HTMLTextAreaElement实例表示的元素具有值属性。但是标记的标记中没有值属性。是的,你是对的。
中没有类似于
值的属性。在这里验证:Haaa。你是对的。对不起,汪达尔人。这是有区别的。因此,即使在输入控件上,value属性也将获取用户编辑的当前值。但是getAttribute('value')将使用value属性获取标记中定义的原始默认值:value=“DEFAULT value”。因此,如果给输入控件一个默认值,那么用户更改它,value属性和getAttribute('value')将返回不同的内容。这有意义吗?对不起,我没在想。。。
var area = document.querySelector("textarea");

area.addEventListener("input", function() {
  if(area.value) area.classList.add('has-content');
  else area.classList.remove('has-content');
});