js--textarea的取值赋值

取值赋值常用的方法,html(),text(),val()

单独说说textarea

.它是表单元素,val()可用

.它是闭合标签,html(),text()可用

这三个都可以取值赋值,会有怎样的效果?举例

<textarea class="test">111</textarea>

一、取值

1. textarea默认值111

2. 在输入框内输入wwww

可见text(),html()没有获取到改变后的值,

截一下源码中关键的部分,就知道原因了,从jquery源码中可以看出,

val()方法通过遍历元素的value值

text()方法是通过遍历元素的childNodes,获取每个子节点的nodeValue,拼接成字符串返回。

html()通过元素的innerHTML返回需要取的值

再看textarea的childNodes和value,innerHTML是什么

默认时:

 

在输入框键入后

 

总结:text(),html()方法只能够获取到textarea的初始化文本值。 val() 方法不仅可以获取textarea的初始化文本值,当文本值改变时,也能正常获取到。

二、赋值

1.默认为111,只有val(‘222’)改变了输入框值

html(‘444’),text(‘333’)后对应的nodeValue,innerHTML值都修改了,但是value值丝毫未动摇

2.默认1111

.执行html('222');框内值变化,对应innerHTML,nodeValue,value变化

.执行text('333'),框内值变化,对应innerHTML,nodeValue,value变化

.在框内输入3334,对应value变化,innerHTML,nodeValue不变

.再执行text('444'),框内值不变,对应innerHTML,nodeValue变化,value不变化 

这就是为什text(),html()赋值时而好用时而不起作用的原因

总结:value是一头沉睡的狮子,通过val()赋值,或者键入改变输入框的值,都是在唤醒这头狮子;一旦value苏醒,text(),html()都可以歇菜了.

显示推荐内容

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那些年的代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值