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. 【云原生 · Kubernetes】apiserver高可用

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 7.1 高可用选型 ipvs+keepalived nginx+keepalived hap ...

  2. webapi+vue跨域session丢失解决方法

    前后端分离中在webapi设置可以跨域,在web.config文件中添加 <httpProtocol>       <customHeaders>         <ad ...

  3. RabbitMQ个人实践

    前言 MQ(Message Queue)就是消息队列,其有点有很多:解耦.异步.削峰等等,本文来聊一下RabbitMQ的一些概念以及使用. RabbitMq 案例 Springboot整合Rabbit ...

  4. 在Linux配置git

    生成ssh ssh-keygen -t rsa 可以不设置密码,一路回车就行,会在 ~/.ssh/下生成两个ssh key: ssh-add ~/.ssh/id_rsa.pub 这一步是使用刚才生成那 ...

  5. 【每日一题】【哈希表,返回结果的下标】2022年1月18日-NC61 两数之和

    描述给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列.(注:返回的数组下标从1开始算起) 算法: import java ...

  6. 微服务开发平台 Spring Cloud Blade 部署实践

    本文介绍使用 Rainbond 快速部署 Spring Cloud Blade 微服务平台.Spring Cloud Blade 是一个由商业级项目升级优化而来的微服务架构,采用Spring Boot ...

  7. Linux 系统用户文件缺失造成“bash-4.2$”错误的解决办法

    一.问题出现的原因 造成这个现象的原因是因为用户文件夹下的bash_logout.bash_profile和bashrc这三个隐藏文件缺失 二.问题复现 现在删除这三个文件 此时问题出现了 三.问题解 ...

  8. pycharm恢复删除文档与查询修改前数据

    1.pycharm恢复删除文档 第一步: 第二步: 2.pycharm查询修改前文档数据 第一步: 第二步:

  9. MongoDB从入门到实战之MongoDB简介

    前言 相信很多同学对MongoDB这个非关系型数据库都应该挺熟悉的,在一些高性能.动态扩缩容.高可用.海量数据存储.数据价值较低.高扩展的业务场景下MongoDB可能是我们的首选,因为MongoDB通 ...

  10. vivo 云原生容器探索和落地实践

    作者:vivo 互联网容器团队- Pan Liangbiao 本文根据潘良彪老师在"2022 vivo开发者大会"现场演讲内容整理而成.公众号回复[2022 VDC]获取互联网技术 ...