看板 Ajax 關於我們 聯絡資訊
請問jQuery可以包成DOM物件嗎? jQuery可以像這樣 var jq = $("#div1"); 取得jQuery物件。 但有時要用DOM物件就得 var js = document.getElementById("div1"); 這樣一長串。 有比較簡潔的方法嗎?有時還是想用DOM物件的,像是取得name之類的。 謝謝各位的解答。 -- http://www.youtube.com/watch?v=zqzVtROqPQI
お耳がぴょんぴょん♪ともちんこと板野友美です。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.137.254.54
s25g5d4:$("#div1")[0] 02/02 19:16
s25g5d4:如果有多個物件就改成[1]、[2]... 以此類推 02/02 19:16
TheThird:喔喔!這個方法好棒!感謝! 02/02 19:50
bibo9901:那叫 DOM 物件 .. 02/02 19:58
※ 編輯: TheThird 來自: 114.137.254.54 (02/02 20:08)
adamp3:怕麻煩你也可以寫個func直接return doc.getElementById('') 02/03 03:18
bibo9901:而且jq也能直接取得.attr('name')呀 既然都用jq了 還有什 02/03 10:32
bibo9901:麼地方會有必要轉成DOM再操作純js? 02/03 10:33
我剛好遇到一個例子用jQuery不行要用DOM。 $("#mySelect").append("<option value='foo'>foo</option>"); 這行雖然可以將option加入select,但在IE6上不知道為什麼會出錯@@ 所以我後來改用DOM的方式加入option。 function appendOption(content){ var elOptNew = document.createElement('option'); elOptNew.text = content; elOptNew.value = content; var elSel = document.getElementById('mySelect'); try { elSel.add(elOptNew, null); } catch(ex) { elSel.add(elOptNew); // IE only } } 只是用DOM,打document.getElementById('mySelect')感覺很累XD 改成$('#mySelect')[0]就比較簡短了!
mrbigmouth:聽說某些操作 使用DOM現成的東西會比較快... 02/03 11:07
s25g5d4:肯定比較快的 跑一次jQuery function最後還不是要用DOM去 02/03 19:23
s25g5d4:取 可是這樣就比較難維護 原始碼比較亂 02/03 19:23
※ 編輯: TheThird 來自: 114.136.233.190 (02/03 20:13)
TonyQ:select 跟 option 的關係比較特別 02/03 21:39
TonyQ:要作的話,基本上這樣會比較好。 02/03 21:39
TonyQ:http://jsfiddle.net/K2SbJ/ 這是經驗問題 加油 ;) 02/03 21:40
TheThird:樓上這個網站好棒! 02/03 22:02
感謝TonyQ大的提供,不過嘗試後發現了幾個問題。 http://jsfiddle.net/Vxj4c/ appendOptions是改寫TonyQ大的使用jQuery的function, appendOptions2則是使用DOM的function。 使用jQuery append option,length是空的,如果之後要設定selected 之類的就沒辦法(不能用索引找option比對特定value或text)。 用DOM append的就可以。 ※ 編輯: TheThird 來自: 163.23.72.51 (02/04 08:58)
amosa:這樣是你要的嗎? http://jsfiddle.net/YemB5/1/ 02/05 14:24
dlikeayu:innerhtml 02/05 15:46
TheThird:感謝amosa提供。 02/06 17:12
TonyQ:其實我被你騙到了...你會拿到length 是空 02/06 20:21
TonyQ:是因為你把 meSelect 打成 mySelect 02/06 20:21
TonyQ:selector 還是會 work 的,難怪我總覺得怪怪的。 02/06 20:21
TheThird:真的耶,我也沒發現XD 02/06 21:07