扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1.event.type属性
创新互联建站是一家集网站建设,上林企业网站建设,上林品牌网站建设,网站定制,上林网站建设报价,网络营销,网络优化,上林网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
该方法作用是可以获取到时间的类型。
2.event.preventDefault()方法
该方法的作用是阻止默认的事件行为。JavaScript中符合W3C规范的preventDefault()方法在IE浏览器中无效。jQuery对其进行了封装,使之能兼容各种浏览器。
3.event.stopPropagation()方法
该方法是阻止事件的冒泡。JavaScript中符合W3C规范的stopPropagation()方法在IE浏览器中无效。jQuery对其进行封装,使之能兼容各种浏览器。
4.event.target属性
event.target属性的作用是获取到出发事件的元素。jQuery对其封装后,避免了W3C、IE和safari浏览器不同标准的差异。
5.event.relatedTarget属性
在标准DOM中,mouseover和mouseout所发生的元素可以通过event.target()方法来访问,相关元素是通过event.relatedTarget属性来访问的。event.relatedTarget属性在mouseover中相当于IE浏览器的event.fromElement属性,在mouseout中相当于IE浏览器的event.toElement,jQuery对其进行了封装,使之能兼容各种浏览器。
6.event.pageX/event.pageY属性
该方法的作用是获取到光标相对页面的x坐标和y坐标。如果没有使用jQuery时,那么IE浏览器中是用event/event.y方法,而在Firefox浏览器中用event.pageX/event.pageY方法。如果页上有滚动条,则还要加上滚动条的宽度和高度。在IE浏览器中还应该减去默认的2px的边框。
7.event.which属性
该方法的作用是在鼠标单击事件中获取到鼠标的左、中、右键;在键盘事件中获取键盘的按钮。
8.event.metaKey属性
针对不同浏览器对键盘中的ctrl按键解释不同,jQuery也进行了封装,并规定event.metaKey()方法为键盘事件中获取ctrl按键。
9.event.originalEvent属性。
该方法的作用是指向原始的事件对象。
jQuery通过name获取对象的方法是:
使用jQuery获取name="nw"的input对象:$('input[name="nw"]');
使用$('input[name="nw"]').val()方法或$('input[name="nw"]').html()方法来获取其值。
和JavaScript获取对象值一样,input、select、textarea等表单类对象用val()方法来获取其值;div、span等对象用html()获取其值,如:$('input[name="nw"]').val();
设置对象的值,如:$('input[name="nw"]').val('123');
注意:
1.通过name获取对象值,获取的是第1个对象的值。name是可以重复的。
2.通过name设置对象值,设置的是所有对象的值。
jQuery对象是由其prototype的init构造器进行构造实例,与prototype无关,可以抽离出来。
// 最新版本2.1.4
// 73行定义了jQuery构造函数
// Define a local copy of jQuery
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
// Need init if jQuery is called (just allow error to be thrown if not included)
// 76行 jQuery对象通过prototype下的init方法进行构造并返回实例
return new jQuery.fn.init( selector, context );
},
// 92行 代码告诉我们 jQuery.fn 和 jQuery.prototype 是指向同一对象,也就是说fn是prototype的简写
jQuery.fn = jQuery.prototype = {
// The current version of jQuery being used
jquery: version,
// 96行修正constructor属性指回jQuery。同时jQuery对象虽然是用jQuery.fn.init方法构造,但constructor依然修正指向了jQuery,非为jQuery.fn.init,看下方代码
constructor: jQuery,
// 2735行 定义了jQuery.fn.init构造函数
init = jQuery.fn.init = function( selector, context ) {
// 2835行 使得jQuery.fn.init构造函数的原型和jQuery原型同时指向了同一个对象
// Give the init function the jQuery prototype for later instantiation
init.prototype = jQuery.fn;
// 9202行 而$仅仅只是jQuery对象的一个别名,跟无new构造无关
window.jQuery = window.$ = jQuery;
大概的代码结构就是这样子。
jQuery仅仅为了实现无new构造,在其原型下创建了init方法(仅充当构造器)为其构造实例对象,init方法的原型和jQuery原型指向了同一个对象(当然就成了循环引用),为后续的实例方法和实例插件机制打下基础(如果不指向同一对象写实例插件将会出现$.fn.init.fn.xxxxx这一幕),并修正constructor的指向,使得看起来像是由jQuery构造器构造。
$只是jQuery对象的别名, $ === jQuery 是成立的,并且因为使用new操作符的时候 ( new jQuery() ) 和 jQuery() 的 reutrn 值会覆盖new操作符生成的实例,所以 jQuery() 和 new jQuery () 的结果也是一样的。
而题主示例是
1、 $是实现jQuery无new构造的方法
2、 $ !== jQuery
3、 jQuery() 和 new jQuery的结果是不同的
你是问Query对象如何转为dom对象吧?若是的话,答案如下:
jQuery获取的对象(通过$(...))是jQuery对象,要想转为dom对象,有如下几种方式:
如:var oDiv = $('#myDiv');
oDiv[0]
oDIv.get(0)
使用each函数也能间接实现jQuery对象到dom对象的转换,如:
oDiv.each(function(){
console.log(this instanceof jQuery); // 控制台打印输出false,即:此处的this已经不是jQuery对象了
});
监控一个容器,当用户点击时弹出
代码如下
$(function(){
$("Element").click{function(){
alert("点击我哦!");
}
}
});
基本对象获取(注意这里获取的都是Jquery对象而不是Dom对象哦,但是他俩是可以转换滴)
代码如下
复制代码
代码如下:
$("*")
‘表示获取所有对象
但是我至今没这样用过
$("#XXX")
'获得
id=XXX
的元素对象(id可以是标签的id或CSS样式id)
常用
$("input[name='username']")
获得input标签中name='userName'的元素对象
常用
$(".abc")
'
获得样式class的名字是.abc的元素对象
常用
$("div")
'
标签选择器
选择所有的div元素
常用
$("#a,.b,span")
'表示获得ID是()a的元素和使用了类样式b的元素以及所有的span元素
$("#a
.b
p")
'ID号是a的并且使用了
b样式的
所有的p元素
例
假设有如下代码。
复制代码
代码如下:
var
target_obj
=
jQuery('#target_obj_id');
则,若需要判断id为target_obj_id是否存在的话,可以实现的方法有一下两种:
1、
代码如下
复制代码
代码如下:
if
(target_obj.length
0)
{
//如果大于0
标识
id
为target_obj_id的对象存在,否则不存在
//对象存在的处理逻辑
}
else
{
//对象不存在的处理逻辑
}
2、
代码如下
复制代码
代码如下:
if
(target_obj[0])
{
//对象存在的处理逻辑
}
else
{
//对象不存在的处理逻辑
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流