就是這個(gè)問題$("input:eq(2)").attr('value',function(i, val)
我以提問的方式,說說我的理解,希望評(píng)論指出我的錯(cuò)誤。
<form> ????????<input?type="text"?value="設(shè)置value"?/> ????????<input?type="text"?value="獲取value"/> ????????<input?type="text"?value="回調(diào)拼接value"?/> ????????<input?type="text"?value="刪除value"?/> ????</form> ???? ????<script?type="text/javascript"> ???? //i是當(dāng)前選擇元素的索引值,val是當(dāng)前選擇元素的當(dāng)前屬性值 ???? $("input:eq(2)").attr('value',function(i,?kengdie){ ???? return?'通過function設(shè)置'?+?kengdie ???? }) ????</script>
先把多余的刪掉,然后把原本的變量val改成kengdie,對(duì)!
1、首先,$("input:eq(2)").attr('value',function(....))設(shè)置(替換)當(dāng)前input的value值為function(...)
2、function(i,kengdie),i就是指當(dāng)前($("input:eq(2)"))的索引值,kengdie這個(gè)變量是獲取當(dāng)前的value值,因?yàn)?attr('value',function(....))目的是要設(shè)置value值,所以function(i,kengdie)就是獲得當(dāng)前的value值(據(jù)說是回調(diào)函數(shù)???)
3、return?'通過function設(shè)置' + kengdie。容易理解。
所以結(jié)果是:“通過function設(shè)置回調(diào)拼接value”。
好像input 的長(zhǎng)度不夠啊真坑爹,誤以為看到的是“通過function設(shè)置回調(diào)拼接val”,其實(shí)把文字拉右邊就能看到ue了。加上坑爹的變量名val!誤以為是變成val!
所以就這樣理解吧。
2017-07-20
大概像你說的一樣,
attr的第一個(gè)參數(shù)是獲取屬性名,第二個(gè)參數(shù)是利用函數(shù)改變屬性值。
你這樣看這個(gè)function,傳入兩個(gè)參數(shù),第一個(gè)參數(shù)接收eq的索引值,進(jìn)行定位,測(cè)試:因?yàn)楫?dāng)你把eq(2)改為eq(1)時(shí),對(duì)應(yīng)的第二條input就會(huì)顯示為通過function設(shè)置XXX。
第二個(gè)參數(shù)val,就如你所說的kengdie,接收--當(dāng)前attr獲取的屬性名--的屬性值,用--隔開看起來更容易理解一點(diǎn)
最后用return返回添加的內(nèi)容和屬性值
eg:你會(huì)更好理解用函數(shù)改變屬性值,沒有傳參,理解起來就沒有那么困難。
首先,第三條input需要加一個(gè)name
(把name的屬性值設(shè)為value的屬性值)
可以在代碼區(qū)測(cè)試一下。相信你能理解。加油。
2017-09-13
看不懂耶
2017-07-14
我還是初學(xué)者