JQueryDOM操作和一些其他函数

一、JQuery语法:

1、使用JQuery必须先导入JQuery.x.x.js文件
 2、JQuery中的选择器:
 $("选择器").函数();
 ①$时JQuery的缩写,即可以使用JQuery("选择器").函数();
 ②选择器,可以是任何的CSS支持的选择符

3、文档就绪函数:防止在文档未完全加载完成之前,运行JQuery代码:
 $(document).ready(function(){
 //JQuery代码
 });

简写形式:$(function(){});

[文档就绪函数&window.onload区别]
 ①window.onload必须等到网页中的所有内容加载完成后,才会执行代码(包括图片、视频等资源)。

文档就绪函数,只需要在网页DOM结构加载完毕后,就可以执行代码
 ②window.onload只能写一个,写多个只会执行最后一个;
 文档就绪函数,可以写多个,并且不会被覆盖。

4、原生JS对象与JQuery对象:
 ①使用:$("")选中的是JQuery对象,只能调用JQuery的函数,而不能使用元素JS的事件与函数;
 $("#p").click(); ?
 $("#p").onclick = function(){} ?
 解释:$("#p")是JQuery对象, .onclick是原生JS事件

同理,使用document.getElement系列获取的是原生JS对象,也不能使用JQuery相关函数。

②原生JS对象转为JQuery对象
 可以使用$()包裹原生JS对象,即可转为JQuery对象。
 var p = document.getElementsByTagName("p");
 $(p).click(); ? 原生JS的对象p已转为JQuery对象

③JQuery对象转为原生JS对象。使用.get(index)或[index]
 $("#p").get(0).onclick = function(){} ?
 $("#p").[0].onclick = function(){} ?
 5、JQuery 解决多库冲突
 由于其他的JS库,也可能使用$作为自身标识,导致其他JS库与JQuery冲突。
 要解决冲突,可以放弃使用$,直接使用JQuery对象。

【使用自执行函数传入JQuery对象简化写法】
 jQuery.noConflict();//调用这个函数,将$控制权让渡给其他类库,即JQuery不能再使用$

!function(j){
 //函数之中,就可以用字母j,代替JQuery对象
 }(jQuery);

二、JQuery的dom操作和其他函数

使用$()直接创建一个标签节点

将创建好的节点,插入到指定位置。

在#div1内部的最后,直接插入一个节点。
$("#div1").append("<p>这是被插入的p标签</p>");

把新节点插入到#div1中
$("<p>这是被插入的p标签</p>").appendTo("#div1");

在#div1内部的开头,直接插入一个节点。
$("#div1").prepend("<p>这是被插入的p标签</p>");

$("#div1").after("<p>这是被插入的p标签</p>");
$("<p>这是被插入的p标签</p>").insertBefore("#div1");

把每个p标签外面,都包裹一层div
$("p").wrap("<div></div>");

把所有的p标签,包裹在同一个div中
$("p").wrapAll("<div></div>");

把#div1里面的所有子元素,用<div>包裹起来
$("#div1").wrapInner("<div></div>");

删除元素的父标签
$("#p").unwrap();

将所有匹配的p标签,全部换为span标签
$("p").replaceWith("<span>111</span>");

用span元素,替换掉所有p标签
$("<span>111</span>").replaceAll("p");

删除#div1中的所有子元素。 但是#div1依然保留空标签
$("#div1").empty();

直接从DOM中,删除#div1以及所有子元素
$("#div1").remove();

直接从DOM中,删除#div1以及所有子元素
$("#div1").detach();

【remove和detach异同】
 1、相同点:
 ① 都会把当前标签,以及当前标签的所有子节点,全部删除;
 ② 都可以在删除时,把当前节点返回。并可以使用变量接受返回的节点,以便后期恢复;
 
 2、 不同点:
 使用接受的节点,恢复原节点时。
 remove只能恢复节点的内容,但是事件绑定,不能再恢复;
 detach不但恢复节点的内容,还能再恢复 事件的绑定;

[JS中.cloneNode() 和 JQ中 .clone()区别]
 两者都接受传入true/false的参数。

.cloneNode() 不传参数或传入参数false,表示只克隆当前节点,而不克隆子节点。 传入true表示可隆全部子节点。

.clone() 无论传入哪个参数,都会克隆所有子节点。但是,不传参数或者传入false,表示只克隆节点,不克隆节点绑定的事件。 传入true表示同时克隆及诶单绑定的事件。

//$("#div1").clone(true).empty().insertBefore("button:eq(0)");

************************CSS和属性相关操作************************

使用attr()设置或者取到元素的某个属性。

$("#div1").attr("class","cls1");

$("#div1").attr({ //使用attr一次性设置多个属性
"class" : "cls1",
"name" : "name1",
"style" : "color:red;"
});
console.log($(".p").attr("id"));

删除元素属性
$("#div1").removeAttr("class");

prop与Attr区别。
 对于checked/disabled等属性名等于属性值的属性,使用prop返回的将是true或false, 使用attr返回的将是属性名或者undefined
 
 所以,对于属性名等于属性值,或者属性是true/false的特殊属性,通常使用prop选取。 其他的属性,通常使用attr选取。

console.log($("button:eq(2)").attr("disabled"));
console.log($("button:eq(2)").prop("disabled"));

给元素添加class属性,与attr添加class的不同是,使用addClass添加的新类名,将会保留原来已有的class名。
$("p").addClass("selected1 selected2");

删除掉元素指定的class
$("p").removeClass("selected1");

元素有指定class名,则删除; 元素没有指定class名,则新增。
$("p").toggleClass("selected1");

取到或设置元素里面的html,相当于innerHTML
console.log($("#div1").html());
$("#div1").html("<h1>我是新的h1</h1>");

取到或设置元素里面的文字内容,相当于innerText
console.log($("#div1").text());
$("#div1").text("<h1>我是新的h1</h1>");

获取或设置 元素的Value值 
console.log($("input[type=‘text‘]").val());
$("input[type=‘text‘]").val("姜浩特别帅!");

给元素设置CSS样式属性 属于style行级样式表权限
$("#div1").css({
    "color":"red",
    "user-select":"none",
    "text-stroke":"0.5px blue"
   });

var id = setInterval(function(){
$("#div1").css({
"width":function(index,value){
if(parseFloat(value)+10 >= 600){
clearInterval(id);
}
return parseFloat(value)+10+"px";
}
});
},500);

获取和设置元素的width和height属性 
console.log($("#div1").height());
console.log($("#div1").width());
$("#div1").width("400px");

获取元素的内部宽度。 包括宽高和padding 
//console.log($("#div1").innerHeight());
//console.log($("#div1").innerWidth());

获取元素的外部宽高。 包括宽高+padding+border
 传入参数为true时,还要包括margin

console.log($("#div1").outerHeight(true));
console.log($("#div1").outerWidth());

offset():
 获取元素,相对于浏览器窗口左上角的偏移位置。
 这个位置,包括margin/position等。
 返回的是一个对象,包含两个属性,分别是left和top
 
 
 position():
 获取定位元素,相对于父元素的偏移位置(父元素必须是定位元素)。
 这个位置,只包括top/left等定位属性。 而margin将被视为当前元素的一部分,并不会视为偏移量范畴。
 
 如果父元素有定位属性。则相对于父元素padding左上角定位;
 如果父元素没有定位属性,则与offerSet一样 ,相对于浏览器左上角定位(但是,只是两者的定位原点都在浏览器左上角。 在计算偏移量时,offerSet会计算margin和top. 而position只计算top)。

console.log($("#div1").offset().top);
console.log($("#p1").offset());

console.log($("#p1").position());

var top = $("#div1").offset().top;
var docHeight = $(window).height();
$(document).scroll(function(){
var scrollTop = $(document).scrollTop();
console.log(scrollTop);
if(scrollTop>=800){
$("#div1").css("display","block");
}
});


时间: 2024-08-10 21:21:57

JQueryDOM操作和一些其他函数的相关文章

jQueryDOM操作

jQueryDOM操作 1.查找元素属性 在jQuery中查找元素属性非常简单attr(“属性名称”) var $test=$("span") alert($test.attr("title"))---注意这里,我们是通过元素选择器查找的,那么我们想查找第二个span呢?这么写 注意:通过上边的方法我们可以同步的修改属性例如$test.attr("title","hehe") $test.removeAttr("ti

操作数据库的魔法函数

function bind(){ global $dbhost,$dbuser,$db,$dbpass; //首先我们不知道外面会传入多少个参数//可以用func_get_args()方法来获取全部传入参数,这个方法返回全部参数的数组//和func_get_args()方法相对应的其实还有一个func_num_args()来获取参数个数$args = func_get_args(); //通过使用array_shift方法,使传入的第一个参数,后后面的参数分开,其实就是把sql语句,和//后面传

CKFinder 弹出窗口操作并设置回调函数

CKFinder 弹出窗口操作并设置回调函数 官方例子参考CKFinderJava-2.4.1/ckfinder/_samples/popup.html 写一个与EXT集成的小例子 Ext.define("MyButton", { extend : "Ext.Button", text : "ckfinder", initComponent : function() { var me = this; Ext.apply(me, { handler

php操作mongodb的常用函数

连接mongodb: $mongoObj = new Mongo("127.0.0.1" , array( 'connect'=>true, 'persist'=>true )); 选择库: $mongoDB = $mongoObj->selectDB("wxdata"); 选择集合: $mongoColletion=$mongoDB->selectCollection("apachelog"); 删除一个集合: $mon

锋利的jquery-DOM操作

1 查找节点 ① 可根据jquery选择器来完成节点查找 ② 可用.text()获取节点的文本内容 ③ 可用.attr("attr")获取属性value 2 创建节点 ① 可用jquery工厂函数来完成$(html) eg:$("<li></li>") 可以同时为标签添加文本和属性 3插入节点 ① 方法(见文档) ② 方法不仅可对节点进行插入操作,还可对节点进行移动操作 4 删除节点 ① remove()去除所有匹配的元素 ② detach(

Linux文件操作的常用系统函数说明

1. open打开文件 (man 2 open 查看) int open(const char *pathname, int flags); //pathname文件名(路径):flags打开模式,有O_RDONLY, O_WRONLY, O_RDWR int open(const char *pathname, int flags, mode_t mode); //该函数一般用于创建新文件,flags添加O_CREAT,比如:O_RDWR|O_CREAT int creat(const cha

php数组键值操作和数组统计函数-函数

1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_array();//检查一个值是否在数组中 array_flip();//键和值对调 array_reverse();//数组中的值反转 模拟获取key的数值<?php $arr=array ("name"=>"user1","age"=&

php操作文件类的函数,操作url等

<?php /**// 一行一行读取一个文件 (文件内容很大的时候,适用.file_get_contents此场景就不太好)$re = fopen("index.php","r+");while (!feof($re)){ $char = fgets($re);// fgets获取一行,fgetc获取一个字符 echo $char;}fclose($re);**/ fopen的第二个必须参数是打开模式:如下图 /**// 多个进程去写一个文件,进行上锁机制$f

PHP 操作数组的常用函数

/*  * 数组的常用函数  * 1.数组的键/值操作函数  * array_values()- 返回数组中所有的值  * array_keys()返回数组中部分的或所有的键名  * in_array() 检查数组中是否存在某个值 如果找到 needle 则返回 TRUE,否则返回 FALSE.  * array_search - 在数组中搜索给定的值,如果成功则返回相应的键名  * array_key_exists - 检查给定的键名或索引是否存在于数组中  *  array_flip - 交