jQuery对象增删改,事件,操做,.data函数,.each函数

1  jQuery 两种建立节点的方法javascript

    1 使用,相似这样的方法。css

    2 肯定导入jQuery后html

    

    效果:java

    

 

     

2  jQuery改动DOM节点的多种方法jquery

    添加次级节点:    web

$(A).append(B)// 把B追加到A的次级目录得最后面
$(A).appendTo(B)// 把A追加到B的次级目录得最后面
$(A).prepend(B)// 把B前置到A的次级目录得最后面
$(A).prependTo(B)// 把A前置到B的次级目录得最后面

    添加同级节点:数组

$(A).after(B)// 把B放到A的后面
$(A).insertAfter(B)// 把A放到B的后面
$(A).before(B)// 把B放到A的前面
$(A).insertBefore(B)// 把A放到B的前面

    移除和清空元素app

remove()// 从DOM中删除全部匹配的元素,包括本节点。
empty()// 删除匹配的元素集合中全部的子节点。

    替换节点:函数

$A.replaceWith($B) //A替换B
$BreplaceAll(¥A)   //B替换A
    克隆:
 
$A.clone();  // clone方法不加参数true,克隆标签但不克隆标签带的事件
$A.clone(true); //clone方法加参数true,克隆标签而且克隆标签带的事件

  

3 事件  event;字体

    经常使用事件:

经常使用事件
click(function(){...}) //单击事件
hover(function(){...},function(){...}) //第一个函数鼠标移上去时执行,第二个函数鼠标移开执行
blur(function(){...})  //失去焦点
focus(function(){...})  //获取聚焦
change(function(){...})  //值改变
keyup(function(){...})   //某个键由按下变化到平时状态
keydown(function(){...})   //某个键被按下


keyup(),keydown() keydown,keyon会获得一个keyCode值,按下不一样键,值是不一样的。

    

 事件绑定

  事件能够由上面的事件函数绑定,也能够由on() 函数绑定。

  .on( events [, selector ],function(){}):events参数数据类型为字符串,通常是上面事件函数的字符部分如      

  "click","keyon","keydown","change"。   

  具体事件列表   http://www.w3school.com.cn/jquery/jquery_ref_events.asp

  function(){},事件发生时的函数,注意   若是此时函数内部引用this,那么是一个DOM节点,而不是jQuery对象.

  [, selector ]  可选参数,若是有参数  数据类型为字符串,配合使用本函数的对象使用,

  好比:$("body").on("event","input:checkedbox",function(){''.......})       那么触发事件的对象,就是$('body input:checkedbox')对象

  事件移除 

  .off( events [, selector ][,function(){}])(用法同上)

     

  阻止后续事件执行

  1  return false;  2 this.preventDefault()

   注意:hover 不能直接在on函数里面使用,参考如下代码

      

$('ul').on('mouseenter', 'li', function() {//绑定鼠标进入事件
    $(this).addClass('hover');
});
$('ul').on('mouseleave', 'li', function() {//绑定鼠标划出事件
    $(this).removeClass('hover');
});

      

     

4 页面载入

   当DOM载入就绪能够查询及操纵时绑定一个要执行的函数。这是事件模块中最重要的一个函数,由于它能够极大地提升web应用程序的响应速度。

   

$(document).ready(function(){
// 在这里写你的JS代码...
})

或

$(function(){
// 你在这里写你的代码
})

5  .data函数 .each函数

   在匹配的元素集合中的全部元素上存储任意数据  ,返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。

   .data(key, value):  在匹配的元素上存储任意相关数据

   $("div").data("k",100);//给全部div标签都保存一个名为k,值为100

  .removeData(key):

    

   jQuery.each(collection, callback(indexInArray, valueOfElement)):

  通用迭代函数,用来无缝迭代对象和数组。数组和相似数组的对象经过一个长度属性(如一个函数的参数对象)来迭代数字索引,

    从0到length - 1。其余对象经过其属性名进行迭代。

    

li =[10,20,30,40]
$.each(li,function(i, v){
  console.log(i, v);//i是索引,v是每次循环的具体元素。
})

输出:
010
120
230
340

 方法用来迭代jQuery对象中的每个DOM元素。每次回调函数执行时,会传递当前循环次数做为参数(从0开始计数)。
因为回调函数是在当前DOM元素为上下文的语境中触发的,因此关键字  老是指向这个元素。

停止.each操做: return false (至关于break) 跳过循环:return (至关于 continue)
.each()this

 

注意: jQuery的方法返回一个jQuery对象,遍历jQuery对象中的元素 - 被称为隐式迭代的过程。

当这种状况发生时,它一般不须要显式地循环的 .each()方法:

也就是说,上面的例子没有必要使用each()方法,直接像下面这样写就能够了:

$("li").addClass("c1");  // 对全部标签作统一操做

 

r=[{'name':'小李','性别':''},{'name':'小王','性别':'不男不女'}]
$.each(r,function(index,value){
    console.log(index,value)
})
0 {name: "小李", 性别: ""}
1 {name: "小王", 性别: "不男不女"}

 

  

6  jQuery如何操做标签属性,className值    

attr(attrName)// 返回第一个匹配元素的属性值
attr(attrName, attrValue)// 为全部匹配元素设置一个属性值
attr({k1: v1, k2:v2})// 为全部匹配元素设置多个属性值
removeAttr()// 从每个匹配的元素中删除一个属性
prop() // 获取属性
removeProp() // 移除属性
 
 

prop和attr的区别:

  attr全称attribute(属性) 

  prop全称property(属性)

  虽然都是属性,但他们所指的属性并不相同,attr所指的属性是HTML标签属性,而prop所指的是DOM对象属性,能够认为attr是显式的,而prop是隐式的

 
 

总结一下:

 
 
  1. 对于标签上有的能看到的属性和自定义属性都用attr
  2. 对于返回布尔值的好比checkbox、radio和option的是否被选中都用prop。
 

实例:

    

<input type="checkbox" checked id="i1" value="1">
$("#i1").attr("checked")   // checked
$("#i1").prop("checked")  // true

<input type="checkbox" value="1">
<input type="radio" value="2">
<script>
  $(":checkbox[value='1']").prop("checked", true);
  $(":radio[value='2']").prop("checked", true);
</script>


样式操做:   

addClass();// 添加指定的CSS类名。
removeClass();// 移除指定的CSS类名。
hasClass();// 判断样式存不存在
toggleClass();// 切换CSS类名,若是有就移除,若是没有就添加。

直接操做属性节点的值:
css("color","red")//DOM操做:tag.style.color="red"
如 
$("p").css("color", "red"); //将全部p标签的字体设置为红色

位置操做  

offset()// 获取匹配元素在当前窗口的相对偏移或设置元素位置
position()// 获取匹配元素相对父元素的偏移
scrollTop()// 获取匹配元素相对滚动条顶部的偏移
scrollLeft()// 获取匹配元素相对滚动条左侧的偏移

尺寸

height()
width()
innerHeight()
innerWidth()
outerHeight()
outerWidth()    

文本操做

html()// 取得第一个匹配元素的html代码
html(val)// 设置全部匹配元素的html代码
text()// 取得全部匹配元素的文本内容
text(val)// 设置全部匹配元素的文本内容
val()// 取得第一个匹配元素的当前值
val(val)// 设置全部匹配元素的值
val([val1, val2])// 设置多选的checkbox、多选select的值

实例:
<input type="checkbox" value="basketball" name="hobby">篮球
<input type="checkbox" value="football" name="hobby">足球

<select multiple id="s1">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

设置值:
$("[name='hobby']").val(['basketball', 'football']);
$("#s1").val(["1", "2"])

获取被选中的checkbox或radio的值:

<label for="c1">女</label>
<input name="gender" id="c1" type="radio" value="0">
<label for="c2">男</label>
<input name="gender" id="c2" type="radio" value="1">

$("input[name='gender']:checked").val()

  

 为了方便,不要随意把jQurey对象变成Dom对象

相关文章
相关标签/搜索