textarea标签value与innerHTML

textarea标签没有value属性,若想在文本区显示默认文本,可以直接写,如下:
<textarea cols="30" rows="10" name="文本区" id="area">你好呀</textarea>
或在js中使用
document.getElementById('area').value='你好呀‘
都可以在文本区显示输入的文字,如下图所示:在这里插入图片描述
也可以使用.innerHTML进行赋值,结果是一样的。但是如果在网页中文本区输入新的内容,.innerHTML是获取不了新输入的内容的,只能获取原有赋值;此时.value是可以获得网页文本区的全部内容的。
举例说明:

<body>
	<textarea id="area" cols="30" rows="10" name="文本区">原始文本
	</textarea>
	<p id="res"></p> 
</body>
<script type="text/javascript">
	getVal=document.getElementById('area').value;
	get=document.getElementById('area').innerHTML;
	
	console.log('get='+get);
	console.log('getVal='+getVal);
</script>

在这里插入图片描述
若向文本区输入“新输入文本”,刷新,有如下结果:在这里插入图片描述

综上,若想获得文本区内容,还是应该使用value属性。
具体什么原因我不清楚,有大神知道麻烦评论哈,我也想知道原因噻。

HTML中,通常提到支持 `value` 属性的标签时,我们首先想到的是表单相关的输入元素如 `<input>` 和 `<textarea>`。然而,如果我们讨论的是“纯文本标签”,即那些主要用于显示文本内容而非用户输入的标签,默认情况下它们并不直接支持 `value` 属性。不过,在实际开发中,有时候我们需要给这些标签设定一些初始值或数据属性以便于管理和操作。 为了达到类似的效果,可以采用以下几种策略: ### 使用 data-* 属性 尽管不是传统的 `value` 属性,但是 HTML5 引入了自定义的数据属性 (`data-*`) ,它允许开发者为任何标准的HTML元素附加额外信息。这种方式非常适合存储DOM元素关联但又不属于其核心功能的部分数据。 **示例:** ```html <p id="example" data-value="这是预设的文本内容">当前显示的内容</p> <script> document.addEventListener('DOMContentLoaded', function () { const para = document.getElementById('example'); console.log(para.getAttribute('data-value')); // 输出: 这是预设的文本内容 if (!para.textContent) { para.textContent = para.getAttribute('data-value'); // 如果没有设置文本则用默认值填充 } }); </script> ``` 通过上述例子可以看到,即使 `<p>` 标签本身不支持 `value` 属性,我们也可以借助 `data-*` 来保存并读取所需的初始值或其他元数据。 ### 利用 hidden input 元素配合 label 或 span 另一种方法是在需要的情况下创建隐藏的 `<input type="hidden">` 字段,并将其 value 设置为你想要赋予该文本区域的初始文本。然后你可以通过 JavaScript 将这个值赋给相应的可见文本节点(比如 `<label>`, `<span>`)作为其内容的一部分。 **示例:** ```html <input type="hidden" id="textValue" value="这是预设的文本内容"> <label for="textValue"><span></span></label> <script> window.onload = function() { let inputValue = document.getElementById('textValue').value; let displayArea = document.querySelector('label[for="textValue"] > span'); displayArea.innerHTML = inputValue; // 显示隐藏字段中的值 }; </script> ``` 这种做法使得我们可以利用表单控件的优势,同时保持页面布局整洁美观。 ### 结合 JavaScript 动态设置 textContent 或 innerHTML 最后一种常见的方式就是完全依靠JavaScript来动态地初始化和管理这些非输入型文本标签的内容。这特别适用于那种只有当满足一定条件后才应展示某些消息的情形下非常有用。 综上所述,虽然纯粹意义上的“纯文本标签”并不具备内置的 `value` 属性,但我们依然有许多途径能够在不影响用户体验的前提下实现相近的功能需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值