我认为$('#my_id1')与document.getElementById('my_id1')相同。但它显然不是。有什么区别?
(function( $ ) {
$.fn.simple_hide_function = function() {
var $t = this;
$t.hide();
};
})( jQuery );
$(window).load(function () {
var $div1 = $('#my_id1');
var $div2 = document.getElementById('my_id2');
$div1.simple_hide_function(); // this is working
$div2.simple_hide_function(); // but this is not working
});
添加示例以使其更清晰:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<div id="my_id1" style="height:100px;background:#f00">div1</div>
<div id="my_id2" style="height:100px;background:#f00">div2</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
(function( $ ) {
$.fn.simple_hide_function = function() {
var $t = this;
$t.hide();
};
})( jQuery );
$(window).load(function () {
var $div1 = $('#my_id1');
var $div2 = document.getElementById('my_id2');
$div1.simple_hide_function();
$div2.simple_hide_function();
});
</script>
</body>
</html>
答案 0 :(得分:7)
区别在于第一个返回 jquery对象,而第二个返回 DOM元素。
但这些陈述等同于:
document.getElementById('my_id2') <-> $('#my_id1').get(0)
或
document.getElementById('my_id2') <-> $('#my_id1')[0]
答案 1 :(得分:4)
第一个返回一个jQuery对象,该div作为唯一的成员。您可以在对象上使用jQuery函数来操作它。
第二个使用浏览器的内置方法返回DOMElement。
答案 2 :(得分:1)
$('#my_id1') // Returns a jQuery object
和
getElementById('my_id1') // Returns a DOM object.
要获取jQuery对象的DOM对象,可以调用:
$('#my_id1').get()
jQuery可以使用选择器匹配多个对象,因此要获得第二个匹配的DOM元素:
$('#my_id1').get(1) // 1 = item #2 (zero-based index)
要从集合的 END 中获取匹配的DOM元素,您可以使用负数,即要检索的匹配元素末尾的距离,所以-1得到最后一项。
$('#my_id1').get(-1) // gets the last item of the matched elements
答案 3 :(得分:0)
使用my_id1
:
var $div2 = document.getElementById('my_id1');
答案 4 :(得分:0)
据我所知,浏览器中的渲染有所不同。
好像我们不使用文件。这在IE浏览器中不起作用。
但只适用于其他浏览器。