1. 程式人生 > 實用技巧 >textarea的取值賦值【轉】

textarea的取值賦值【轉】

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

單獨說說textarea

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

.它是閉合標籤,html(),text()可用

這三個都可以取值賦值,會有怎樣的效果?舉例

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

一、取值

  1. textarea預設值111

  1. 在輸入框內輸入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()都可以歇菜了.

文章轉自:https://blog.csdn.net/wangjiaohome/article/details/81709938