Textarea:elem.val()vs elem.text()
这很奇怪。 显然,我可以使用.val()和.text()来操作textarea文本。
但是在我使用.val来改变文本之后,我再也不能使用.text了。 相反的情况并非如此。
这导致一些时髦的错误。 原因是因为我使用的插件可能正在使用.val来操作文本。
谁能解释一下这是如何工作的? 谢谢!
您必须使用val()
或(更好)textarea的value
属性。 text()
最初起作用,因为textarea的初始值由它包含的文本节点(如果有)确定。 您甚至可以最初更改此文本节点的nodeValue
或data
属性,它将更新textarea的值。 但是,只要用户更改了textarea的值或脚本更改了textarea的value
属性,文本节点就会超出图片范围,并且不再以任何方式绑定到textarea的值。
.val()
函数获取元素的“value”属性,而
.text()
获取元素中文本节点(节点类型3)的内容。 我会说,如果设置.text()
起作用,那不是一个好主意,因为它基本上是用基本的物质构建块来愚弄。 它可能导致错误,浏览器崩溃或毁灭性爆炸。
使用.val()
。
edit – .text()
可以处理用户与元素交互的点,或者JavaScript代码设置“value”属性。 在那之后,元素的DOM内容变得无关紧要。 你仍然可以得到它,但它不会反映元素的实际状态。
听起来很奇怪,但是在较低的层次上,.val()是我期待的工作,因为.value是访问表单元素内容的方式。 为什么.text()在某些情况下有效
必须使用Node
.text()
类型检索…
.Text()
获取所有匹配元素的innerText(不是HTML),而.val()
从输入元素中检索值…