[toc] ##JQ(jquery)
- zepto 就是一个缩减的JQ,一般用于移动端;
- JQ就是一个封装好的方发库,提供了各种常用方法;
- JQ获取的元素永远是一组、一个集合
- JQ提供的方法,我们不用考虑兼容性问题;
- 获取DOM元素 $("css选择器,上下文")
- 获取JQ用$,代码如下:
var $box = $('.box');
var $box2 = $('ul .box');
var $ul = $('.ul_box');
var $box3 = jQuery('.box',$ul);
var $box4 = jQuery('.box:last-child',$ul);//获取最后一个
var $box5 = jQuery('.box:nth-child(2)',$ul);//获取第二个
console.log($box,$box2,$box3)
##JQ节点获取元素
- 样式代码:
<div id="app">
<span>123</span>
<a href="http://baidu.com">qqqq</a>
<ul>
<li> <span>6666</span><>
<li> <a> href="http://qqqq">aaaa</a></li>
</ul>
</div>
- 获取代码如下:
- ** filter是JQ自带的方法,用于过滤;**
let $oDiv = $('#app');
var $a = $oDiv.children('a');// 获取子代中的a标签
console.log($a);
var $a = $oDiv.find('a');// 获取后代中的a标签
console.log($a);
var $lis = $('ul li');// 从这些获取到的li中筛选出 有qqq属性的哪个元素
var $li = $lis.filter('[qqq=123]');//
console.log($li);
console.log($li.prev());//上一个元素标签;
console.log($li.next());//下一个元素标签;
console.log($li.prevAll());//上边所有元素标签;
console.log($li.nextAll());//下边所有元素标签;
console.log($li.sib lings());//除了自己以外的所有兄弟;
console.log($li.parent());//父标签
##JQ与原生对象的转化
- JQ对象转成原生对象,通过索引的方式;
console.log($oDiv);
$oDiv[0].style.color = 'red';
- 原生对象转化为JQ对象
- **$(原生对象DOM),**用前面的符号包起来
$($oDiv[0]);
##替换、添加
var str = `<h2>你好!cc</h2>`;
$oDiv[0].innHtml = str;
$oDiv.html(str);//相当于替换$oDiv的原有结构
$oDiv.append(str)//把str对应的结构塞到$oDiv的末尾;
##文本框是否传参操作
- vavl用于表单元素
- $inp.val();不传参 就是获取input对应的内容;
- $inp.val('666'); 传参就是设置input框的内容;
var $inp = $('input');
console.log($inp.val())
$inp.val('666');
##$().attr() 操作行内属性
- 一个参数的时候,是获取对应的属性名的属性值
- 两个参数的时候,是设置对应的属性
- 若设置多个属性的时候,我们可以传递一个对象;
var $inp = $('input');
console.log($inp.attr('type'));//获取
console.log($inp.attr('class','ccc'));//设置
console.log($inp.attr({
a:111,
b:222,
c:333
}))//设置多个属性;
$inp.removeAttr('class');//移除对应的样式;
##JQ操作类名的方法
console.log($inp.hasClass('ccc'));//判断对应的元素有没有对应的类名 有就返回true;没有就返回false;
$inp.addClass('box box2 box2')//添加对应类名;
$inp.removeClass('box')//移除对应类名;
$inp.toggleClass('qqq')//若元素有这个类名,就把类名删除;若没有,就把这个类名加上;
##开关灯toggleClass方法
- 样式:
body {
background-color: black;
color: blanchedalmond;
}
.body_box {
background-color: blanchedalmond;
color: black;
}
//样式
<body body_box>
<button>点击</button>
- JQ点击开关灯事件
$('button').on('click', function () {
$('body').toggleClass('body_box');
});
##选项卡JQ插件方法
$.fn.extend({
tab: function () {
// console.log(this)
let _this = this;// 因为事件对应的回调函数中的this不是当前这个函数中的this 所以用一个变量去存储this;
$('li',_this).on('click', function () {
$(this).addClass('active').siblings().removeClass('active');
let n = $(this).index();
$('div',_this).eq(n).addClass('active').siblings().removeClass('active');
});
}
})
$('#tabBox').tab();
$('#tabBox2').tab();
$('#tabBox3').tab();