作者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