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. Vue使用Element表单校验错误Cannot read property ‘validate’ of undefined

    在做注册用户的页面使用表单校验一直提示Cannot read property 'validate' of undefined错误,其实这个错误的提示根据有多种情况,比较常见的就是 ref 的名字不一 ...

  2. Vue 路由跳转显示空白页面的问题

    在写一个登录界面跳转到首页时,路由如下 export default new VueRouter({ routes: [ { path: "/", name: "Logi ...

  3. Selenium4+Python3系列(十) - Page Object设计模式

    前言 Page Object(PO)模式,是Selenium实战中最为流行,并且被自动化测试同学所熟悉和推崇的一种设计模式之一.在设计测试时,把页面元素定位和元素操作方法按照页面抽象出来,分离成一定的 ...

  4. 【每日一题】【树的dfs递归,返回多次,注意都遍历完后才最终返回】2022年1月6日-112. 路径总和

    给你二叉树的根节点 root 和一个表示目标和的整数 targetSum .判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum .如果存在,返回 tr ...

  5. .net6+wpf制作指定局域网ip无法上网的arp欺诈工具

    摘一段来自网上的arp欺诈解释:ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技 ...

  6. linux安装influxdb和chronograf

    安装环境: Alibaba Cloud Linux 安装influxdb 1.下载.安装 wget https://dl.influxdata.com/influxdb/releases/influx ...

  7. 时隔3个月,Uber 再遭数据泄露...

    在今年9月,Uber 就发生过一起数据泄露事件,尽管黑客并无意发动大规模攻击或以此来获取巨额利益,但其成功获取对 Uber 所有敏感服务的完全管理员访问权限仍令人后怕.而在上周,名为"Ube ...

  8. 二阶段目标检测网络-Mask RCNN 详解

    ROI Pooling 和 ROI Align 的区别 Mask R-CNN 网络结构 骨干网络 FPN anchor 锚框生成规则 实验 参考资料 Mask RCNN 是作者 Kaiming He ...

  9. 如何优化大场景实时渲染?HMS Core 3D Engine这么做

    在先前举办的华为开发者大会2022(HDC)上,华为通过3D数字溪村展示了自有3D引擎"HMS Core 3D Engine"(以下简称3D Engine)的强大能力.作为一款高性 ...

  10. django 之swagger配置与生成接口文档

    swagger好处不多说,直接上配置步骤 1.安装swagger pip install django-rest-swagger 2.将swagger配置到setting.py文件中 3.在主url. ...