程式設計雜筆

[程設雜筆] jquery初學遇到的一些麻煩和簡單觀念整理

最近始用javascript和jquery寫網頁,因為都是邊寫邊學,所以常遇到哭笑不得的問題,困住自己很久的時間。

首先是val()和value的問題


<div class="input-group"><input class="form-control" id="dotWords" type="text" value=""></div>


selectedPage.find('#dotWords').attr('value','');
selectedPage.find('#dotWords').val("");

本來是用第一行的方法,想要清除輸入框的字。查網路上的法泰半都是這個解法。但弄了半天,一直沒有辦法成功。後來用了第二個方法才成功。以下是原因:
http://myweb.jowai.info/javascript-dom-differences-and-relations-between-attributes-and-property/
http://stackoverflow.com/questions/5874652/prop-vs-attr
http://stackoverflow.com/questions/8312820/jquery-val-vs-attrvalue
https://teamtreehouse.com/community/why-use-val-instead-of-attrvalue

attr和prop相比之下,似乎prop比較好用。


再者是selector的問題,想說javascript有hoist的特性,所以我就把變數宣告都放在function前面,甚至直接初始化了。結果後面function裡要select的時候,竟select不到。

var newPage=$('#'+newId);
.
.
.
selectedPage=newPage;
selectedPage.find('.panel-heading').addClass('panel-collapsed');
selectedPage.find('.panel-body').slideDown();

後來發現原因是,當我宣告並初始newPage的時候,#newPage都還沒創造出來(這裡我是用clone()),所以之後當然選不到東西!


 

parent() 和 parents() 差個s……

補個closest()

https://api.jquery.com/parent/

https://api.jquery.com/parents/

https://api.jquery.com/closest/


 

find()和children()

https://api.jquery.com/children/

https://api.jquery.com/find/

http://stackoverflow.com/questions/648004/what-is-fastest-children-or-find-in-jquery


 

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s