jquery的Dom操作

查找元素(选择器已实现);创建节点对象;访问和设置节点对象的值,以及属性;添加节点;删除节点;删除、添加、修改、设置节点的css样式等。

操作元素的属性:

方法 说明 举例
attr(属性的名称) 活动指定的属性‘操作CheckBox时,
选中返回checked,没有选中返回undefined
attr("checked")
attr("name")
prop(属性名称) 获取具有true和false两个属性的属性值 prop("checked")

属性的分类

1.获取属性

固有属性:元素本身就有的属性(id name class style):无论attr、prop都能拿到

返回值是Boolean的属性:checked selected disabled:

  • 未被定义attr ---undefined prop----false
  • 定义的attr ---checked prop----true

自定义的属性

  • attr可获取
  • prop不可获取

2.设置属性

类型 固有属性 返回值是Boolean的属性 自定义属性
attr $("#aa").attr("value","1") $("#aa").attr("checked","chedked") $("#aa").attr("uname","admin")
prop $("#aa")prop("value","1") $("#aa")prop("checked","true") /

3.移除属性

removeAttr("属性名")

总结:属性是Boolean用prop方法checked、selected、disabled,其余用attr方法

操作元素的样式

<div id="con" class="blue large">测试<div>
方法 说明 代码例子
attr("calss") 获取class属性的值,即样式名称 $("#con").attr("class")
attr("class","样式名") 修改class属性的值,修改样式(原本的样式会被覆盖) $("#con").attr("green")
addClass("样式名") 添加样式名称原来的基础上添加样式,如果出现相同新的样式以后定义的样式为准 $("#con").addClass("pink")<粉色大战绿色>
css()
css({"具体的样式名":"样式值","...":"",.......})
添加具体的样式添加行内样式 $(“#con").css({"font-size":"40px","font-family":"楷体“})
removeClass(class) 移除样式的名称 $("#con").removeClass("large")

在ie浏览器中要获取边框要输入准确的边框

border-top-width

css()

获取样式:

获取多个div的样式只能得到第一个对应的样式
$('div').css('width')

设置样式:

行内样式,设置单样式

$('div0').css("width","100px");
$('div0').css("height",100);

设置多样式

$('div').css({
width:300,
'height':'300px',
'background-color':'green'
})

添加类:

addClass()

$('#div).addClass('类名1 类名2')

移除类:

removeClass()

$('#div).removeClass('类名1 类名2')
$('#div).removeClass()//移除所有的类

判断类:

hasClass()判断某个元素是否有某个类。有返回true

$('#hasClass).click(function(){
$('#div1').hasClass('fontSize');
})

切换类:

$('#toggleClass').click(function(){
//判断一个元素有某个类就移除这个类,如果元素没有这个类就添加这个类
$('#div').toggleClass('fontSize') })

获得元素的宽高

width()

height()

1.不带参数是获取

2.代参数是设置

  • 设置或者获取高度和宽度是不包括内边距和边框外边距的

    $('#img1').width();
    $('#img1').height(300);

innerWidth()

innerHeight()

获取宽高加了padding(内边距)

outerWidth()

outerHeight()

获取宽高包括内边距和边框(padding和margin)

outerWidth(true)

outerHeight(true)

获得元素的宽高包括内边距、边框、外边距

页面可视区的宽高

$(window).width();
$(widow).height();

案例

Tab栏切换
$(function(){
$('.tab>.tab-item').mouseenter(function(){
$(this).addClass('active').siblings('li').removeClass('active');
//获取当前的索引
var idx = $(this).index(); $('.prodects>.main).eq(idx).addClass('active').siblings('div').removeClass('selected');
})
})

操作元素的内容

<div id="con" class="blue large">测试<div>
<input type ="text" value="oop" id="a"/>
方法 说明 代码
html()非表单元素 获取元素的html内容 $("#con").html()
html("html,内容")非表单元素 设定元素的html的内容 $("#con").html("

上海

")

text()非表单元素 设定元素的文本内容,不包含html $("#con").text()
text("text,内容") 设置元素的文本内容,不包含html $("#con").text("上海")
va()表单元素 获取元素的value的值 $("#a").val()
val("值")表单元素 设定元素的value值 $("#a").val("牛逼")

text()

获取文本:获取所有后代的文本

修改文本:如果文本有标签也不会解析,包含了多个dom元素的jQuery对象会把所有的dom元素都会设置上。

隐式迭代

表单元素:

文本框(text)、密码框(password)、单选按钮(radio)、复选框(checkbox)、隐藏域(hidden)、文本域(textarea)、下拉框(select)

非标单元素:

div、span、h1-h6、tr、td、table、li、p

创建元素

  • 原生的js创建节点的方式

    document.write();
    innerHTML
    documnet.craeteElement()

    jquery的方法:

    能创建元素但是只存在内存中,如果要显示在页面上,要追加节点

$("元素内容");
var ss = $("<p>测试</p>");
$('#div1').append(ss);

html():----识别html标签

1.不给参数就获取到了元素的所有内容

2.设置参数就会把原来的内容会覆盖

$(function(){
$('#div').html()
});

添加元素

<div id="a">
<p>小鲜肉</p>
</div>
var span="<span>小奶狗</span>"
方法 说明 代码
prepend(content) 在被选择元素的内部的开头插入元素的内容,被追加的content参数,可以是字符、html元素标记最前面 $("#a").prepend("span")
$(content).prependTo(selector) 把content元素或内容加入到selector元素的开头最前面 $("#span").prependTo("#a")
append(content) 在被选择元素的内部的结尾插入元素或内容,被最加的Content的参数,可以是字符、HTML、元素的标记最后面 $("#a").append("span")
$(content).appendTo(selector) 把content元素或内容插入selector元素内,默认在尾部最后面 $("#span").appendTo("#a")
before() 在元素前插入指定的元素或内容:$(selsctor).before(content)同级 $("#a").before("span")
after() 在元素后插入指定的元素和内容:$(selsctor).after(content))同级 $("#a").after("span")

注:

  • 不存在追加元素到指定位置

    存在会将原来元素直接剪切设置到指定位置

删除元素

<div id="a">
内容
</div>
方法 说明 代码
remove() 删除所选元素或指定的子元素,包括整个标签和内部内容一起删 $("#a").remove()//自杀
empty() 清空所选元素的内容 $("#a").empty()//清空元素

遍历元素

each()

$(selector).each(function(index,element))

参数function为遍历的回调函数

index为遍历元素的序列号,从0开始

element是当前的元素,此时是Dom元素

<span class="green">我</span>
<span class="green">我</span>
<span class="green">我</span>
<span class="green">我</span>
$(".green").each(function(index,element){
console.log(index);
console.log(element);
console.log(this);
console.log($(this));
})

克隆

clone();

只存在内存中,如果要添加要追加

无论是true还是false都会克隆后代节点

但是true是会把事件也会克隆到对应的克隆对象,默认不给参数是false

$(function(){
#('buttion1').click(function(){
var cc=$('#div1').clone();
$('#body').append(cc);
}) ;
});

案例

表格生成案例
$(function(){
//模拟数据
var data=[{
name:"传智博客",
url:"1",
type:"IT培训机构"
},
{
name:"传智博客",
url:"1",
type:"IT培训机构"
},
{
name:"传智博客",
url:"1",
type:"IT培训机构"
},]
$('#button1').click(function(){
//1.html(),他是会覆盖的要一次性的做
var list=[];
for(var i=0;i<data.length;i++){
list.push("<tr>");
//生成td
for(var key in data[i]){
list.push("<td>");
list.push(data[i][key]);
list.push("</td>");
}
list.push("</tr>");
}
//把他变成字符串
$('#div').html(list.join(""));
}) ;
});
$(function(){
//模拟数据
var data=[{
name:"传智博客",
url:"1",
type:"IT培训机构"
},
{
name:"传智博客",
url:"1",
type:"IT培训机构"
},
{
name:"传智博客",
url:"1",
type:"IT培训机构"
},]
$('#button1').click(function(){
//2.$()
for(var i=0;i<data.length;i++){
var str=$('<tr><td>'+data[i]["name"]+'</td><td>'+data[i]["url"]+'</td><td>'+data[i]["type"]+'</td></tr>');
$('#div1').append(str);
}
}) ;
});
城市选择案例
$(function(){
//全部移动
$('#buttion').click(function(){
$('#src-city>option').appendTo($('#a1')) ;
});
//选中的到右边
$('buttion1').click(function(){
$('#src-city>option:selectd').appendTo('#al');
});
});
表格删除案例
$(function(){
//清空全部
$('#buttion1').click(function(){
$('#tbody').empty();
});
//删除对应的行
$('tbody .get').click(function(){
$(this).parent().parent().remove();
});
});
美女图片例子
$(function(){
$('#image-a').click(function(){
var src1 =$(this).attr('href');
var title1=$(this).attr('title');
$('#image-xia').attr('src',asc1);
$('#text1').text(title);
//阻止a标签的跳转
return false;
}) ;
});
表格的全选反选
$(function(){
$('#kuang').click(function(){
var checked = $('#checked1').prop('checked');
$('#li input').prop('checked',checked); }) ;
//下面的多选的点击事件
$('#li input').click(function(){
//判断是否都选中
var all =$('#li input').length
var all-checked=$('#li input:checked');
if(all==all-checked){
$('#upchecked').prop('checked','true');
}else{
$('#upchecked').prop('checked','false');
}
}); //优化
$('#upchecked').prop('checked',all==all-checked);
});

jquery(二:jquery的DOM操作)的更多相关文章

  1. jQuery学习笔记之DOM操作、事件绑定(2)

    jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...

  2. jQuery 源码解析(二十四) DOM操作模块 包裹元素 详解

    本节说一下DOM操作模块里的包裹元素子模块,该模块可将当前匹配的元素替换指定的DOM元素,有如下方法: wrap(html)               ;在每个匹配元素的外层添加一层DOM元素   ...

  3. jquery接触初级-----juqery DOM操作 之二

    DOm 操作之: 1.1  children(),这个函数只是查找元素的子元素,而不考虑其他后代元素 <body> <p title="请选择你最喜欢的水果"&g ...

  4. jQuery(3)——DOM操作

    ---恢复内容开始---   jQuery中的DOM操作 [DOM操作分类] DOM操作分为DOM Core(核心).HTML-DOM和CSS-DOM三个方面. DOM Core:任何一种支持DOM的 ...

  5. jQuery学习笔记(DOM操作)

    DOM操作的分类 一般来说,DOM操作分为3个方面,即DOM Core.HTML-DOM和CSS-DOM. 1. DOM Core DOM Core并不专属于JavaScript,任何一种支持DOM的 ...

  6. jQuery总结02_jq的dom操作+属性操作

    一:JQuery知识点 *:JQuery的dom操作 *:获取节点.给节点添加内容 *:动态创建dom节点 比如动态创建表格等,在js里面进行完成. *删除节点 这里面的删除就是将其放在了一个地方,并 ...

  7. jquery学习:选择器&dom操作

    分类; 1.基本选择器 1.标签选择器(元素选择器) *  语法:$("html标签名”) 获得所有匹配标签名称的元素 2.id选择器 *  语法:$("#id的属性值" ...

  8. jQuery 第二章 实例方法 DOM操作选择元素相关方法

    进一步选择元素相关方法:  .get() .eq() .find() .filter() .not() .is() .has() .add()集中操作  .end()回退操作 .get() $(&qu ...

  9. 前端学习(二十三)DOM操作,事件(笔记)

    javascript 组成部分    1.ECMAScript        javascript的核心解释器 2.DOM        Document Object Modle         文 ...

  10. jQuery 源码解析(二十五) DOM操作模块 html和text方法的区别

    html和text都可以获取和修改DOM节点里的内容,方法如下: html(value)     ;获取匹配元素集合中的一个元素的innerHTML内容,或者设置每个元素的innerHTML内容,   ...

随机推荐

  1. 快速构建页面结构的 3D Visualization

    对 Chrome 扩展功能熟悉的小伙伴,可能都有用过 Chrome 的 3D 展示页面层级关系这个功能. 可以通过 控制台 --> 右边的三个小点 --> More Tools --> ...

  2. java基础知识-lambda表达式

    一.什么是lambda? 在Java中,我们可以将一个值赋值给一个Java变量. int aValue = 129; String aString = "hello world"; ...

  3. 卸载virtualbox中linux虚拟机的增强工具

    报错信息 vboxclient:the virtualbox kernel service is not running 前言 我由virtualbox换到vmware 遇到了这个问题,很烦每次都通知 ...

  4. 解决redmi airdots 2右耳充不进电,灯不亮

    解决方案 在放入充电盒并插入数据线充电状态下,长按按钮

  5. vivo浏览器的神奇操作

    关闭 root 权限也就罢了,你还搞这种操作 看到那个源文件了吗? 只有点击源文件下载的才是 官方提供的安装包, 而你首先看到的下载,点击后会下载vivo 应用商店的安装包. 那么这两种安装包有什么区 ...

  6. 干货 | 如何快速实现 BitSail Connector?

    简介 本文面向 BitSail 的 Connector 开发人员,通过开发者的角度全面的阐述开发一个完整 Connector 的全流程,快速上手 Connector 开发. 目录结构 首先开发者需要通 ...

  7. 在windows下导入react项目并且打包编译后部署到nginx上

    在windows下导入react项目并且打包编译后部署到nginx上 一.安装npm 二.创建react项目 三.安装nginx 四.总结 最近接手了公司的一个django项目,这是应该前后端分离的项 ...

  8. Azure DevOps 中自定义控件的开发

    Azure DevOps 插件: Field Unique Control https://github.com/smallidea/azure-devops-extension-custom-con ...

  9. .NET技术与企业级解决方案研究应用

    分布式缓存框架 Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度. Redis:是一个高性能的KV ...

  10. 04.Javascript学习笔记3

    1.箭头函数 箭头函数是一种更短的函数表达式. const age = birthyear => 2022 - birthyear; console.log(age(2000)) 箭头左边的bi ...