作者TheThird (第三個…)
看板Ajax
標題[問題] jQuery可以包成DOM物件嗎?
時間Thu Feb 2 19:08:17 2012
請問jQuery可以包成DOM物件嗎?
jQuery可以像這樣
var jq = $("#div1");
取得jQuery物件。
但有時要用DOM物件就得
var js = document.getElementById("div1");
這樣一長串。
有比較簡潔的方法嗎?有時還是想用DOM物件的,像是取得name之類的。
謝謝各位的解答。
--
https://www.youtube.com/watch?v=zqzVtROqPQI
お耳がぴょんぴょん♪ともちんこと板野友美です。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.137.254.54
1F:推 s25g5d4:$("#div1")[0] 02/02 19:16
2F:→ s25g5d4:如果有多個物件就改成[1]、[2]... 以此類推 02/02 19:16
3F:→ TheThird:喔喔!這個方法好棒!感謝! 02/02 19:50
4F:→ bibo9901:那叫 DOM 物件 .. 02/02 19:58
※ 編輯: TheThird 來自: 114.137.254.54 (02/02 20:08)
5F:推 adamp3:怕麻煩你也可以寫個func直接return doc.getElementById('') 02/03 03:18
6F:→ bibo9901:而且jq也能直接取得.attr('name')呀 既然都用jq了 還有什 02/03 10:32
7F:→ 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]就比較簡短了!
8F:推 mrbigmouth:聽說某些操作 使用DOM現成的東西會比較快... 02/03 11:07
9F:推 s25g5d4:肯定比較快的 跑一次jQuery function最後還不是要用DOM去 02/03 19:23
10F:→ s25g5d4:取 可是這樣就比較難維護 原始碼比較亂 02/03 19:23
※ 編輯: TheThird 來自: 114.136.233.190 (02/03 20:13)
11F:→ TonyQ:select 跟 option 的關係比較特別 02/03 21:39
12F:→ TonyQ:要作的話,基本上這樣會比較好。 02/03 21:39
14F:→ 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)
16F:→ dlikeayu:innerhtml 02/05 15:46
17F:→ TheThird:感謝amosa提供。 02/06 17:12
18F:→ TonyQ:其實我被你騙到了...你會拿到length 是空 02/06 20:21
19F:→ TonyQ:是因為你把 meSelect 打成 mySelect 02/06 20:21
20F:→ TonyQ:selector 還是會 work 的,難怪我總覺得怪怪的。 02/06 20:21
21F:→ TheThird:真的耶,我也沒發現XD 02/06 21:07