DOM简介

DOM是一种文档对象模型,方便开发者对HTML结构元素内容进行展示和修改。在JavaScript中,DOM不但内容庞大繁杂,而且我们开发的过程中需要考虑更多的兼容性、扩展性。在jQuery中,已经将最常用的DOM操作方法进行了有效封装,并且不需要考虑浏览器的兼容性。

  1. D表示的是页面文档Document、O表示对象,即一组含有独立特性的数据集合、M表示模型,即页面上的元素节点和文本节点。
  2. DOM有三种形式,标准DOM、HTML DOM、CSS DOM(难道不是XML DOM吗?),大部分都进行了一系列的封装,在jQuery中并不需要深刻理解它。
  3. 树型结构用来表示DOM,就非常的贴切,大部分操作都是元素节点操作,还有少部分是文本节点操作。

设置元素及内容

我们通过前面所学习的各种选择器、过滤器来得到我们想要操作的元素。这个时候,我们就可以对这些元素进行DOM的操作。 那么最常用的操作就是对元素内容的获取和修改。

html()和text()方法

方法名 描述
html() 获取元素中HTML内容
html(value) 设置元素中HTML内容
text() 获取元素中文本内容
text(value) 设置元素中文本内容
val() 获取表单中的文本内容
val(value) 设置表单中的文本内容

在常规的DOM元素中,我们可以使用html()和text()方法获取内部的数据。html()方法可以获取或设置html内容,text()可以获取或设置文本内容。

有html代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>基础DOM和CSS操作</title>
<script type="text/javascript" src="jquery-1.12.3.js"></script>
<script type="text/javascript" src="demo.js"></script>
</head>
<body>
<div id="box">
<strong>www.ycku.com</strong>
</div>
</body>
</html>

jQuery代码如下:

alert($("#box").html()); //获取html内容,即<strong>www.ycku.com</strong>
alert($("#box").text()); //text获取的是文本,即www.ycku.com,有html会自动被清理
$("#box").html("<em>www.li.cc</em>"); //替换html内容,HTML会自动解析
$("#box").text("<em>www.li.cc</em>"); //替换文本内容,有HTML会自动转义

注意:当我们使用html()或text()设置元素里的内容时,会清空原来的数据。而我们期望能够追加数据的话,需要先获取原本的数据。

$("div").html($("div").html()+"<em>www.li.cc</em>"); //追加数据

如果元素是表单的话,jQuery提供了val()方法进行获取或设置内部的文本数据。

如有html代码(核心部分):

<input type="text" value="瓢城web俱乐部" />
alert($("input").val()); //获取表单内容
$("input").val("北风网");//设置表单内容

如果想设置多个选项的选定状态,比如下拉列表、单选/复选框等等,可以通过数组传递操作。

html核心代码如下:

<input type="radio" value="男" />男
<input type="radio" value="女" />女
<input type="checkbox" value="编程" />编程

jQuery代码:

alert($("input").val()); //男,选中单选框中的第一个选项
$("input").val("女");
$("input").val(["男","女","编程"]); //value值(下拉列表、单选框、复选框)是这些的将被选定

元素属性操作

除了对元素内容进行设置和获取,通过jQuery也可以对元素本身的属性进行操作,包括获取属性的属性值、设置属性的属性值,并且可以删除掉属性。

attr()和removeAtrr()

方法名 描述
attr(key) 获取某个元素key属性的属性值
attr(key,value) 设置某个元素key属性的属性值
attr({key1:value1,key2:value2,...}) 设置某个元素多个key属性的属性值
attr(key,function(index,value) {}) 设置某个元素key通过fn来设置

html核心代码:

<div id="box">
<strong>www.ycku.com</strong>
</div> <div title="bbb">
<strong>www.ycku.com</strong>
</div>

jQuery代码:

alert($("#box").attr("id")); //获取属性的属性值
$("div").attr("title", "我是域名"); //设置属性及属性值
//传一个对象
$("div").attr({
title:"我是域名", //属性名可[可不]加引号
class:"red", //class不建议用attr来设置,后面有功能更强大和更丰富的方法代替
"data":"123"
});
//通过匿名函数返回属性值
$("div").attr("title", function() {
return "我是域名";
});

注意:attr()方法里的function() {},可以不传参数,也可以只传一个参数index,表示当前元素的索引(从0开始),也可以传递两个参数index、value,第二个参数表示属性原本的值。

$("div").attr("title", function(index,value) {
return "原来的title是"+value+",现在的title是:我是"+(index+1)+"号域名"; //原来没有title,则为undefined
});

注意:jQuery中很多方法都可以使用function() {}来返回出字符串,比如html()、text()、val()和上一章刚学过的is()、filter()方法。而如果又涉及到多个元素集合的话,还可以传递index参数来获取索引值,并且可以使用第二个参数value(并不是所有方法都适合,有兴趣可以自己逐个尝试)。

$("div").html(function(index) { //通过匿名函数赋值,并传递index
return "我是" + (index + 1) + "号div";
});
$("div").html(function(index,value) { //还可以实现追加内容
return value + "<em>www.li.cc</em>";
});

注意:我们也可以使用attr()来创建id属性,但我们强烈不建议这么做。这样会导致整个页面结构的混乱。当然也可以创建class属性,但后面会有一个语义更好的方法来代替attr()方法,所以也不建议使用。

删除指定的属性,这个方法就不可以使用匿名函数,传递index和value均无效。

$("div").removeAttr("title"); //删除指定的属性
$("div").removeAttr(function() { //不可以传递function
return "title";
});

基础DOM和CSS操作(一)的更多相关文章

  1. 基础DOM和CSS操作(三)

    CSS方法 jQuery不但提供了CSS的核心操作方法,比如.css()..addClass()等.还封装了一些特殊功能的CSS操作方法,我们分别来了解一下. width()方法 方法名 描述 wid ...

  2. 基础DOM和CSS操作(二)

    元素样式操作 元素样式操作包括了直接设置CSS样式.增加CSS类别.类别切换.删除类别这几种操作方法.而在整个jQuery使用频率上来看,CSS样式的操作也是极高的,所以需要重点掌握. CSS操作方法 ...

  3. 第一百六十六节,jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度、偏移、滚动条

    jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度.偏移.滚动条 学习要点: 1.DOM 简介 2.设置元素及内容 3.元素属性操作 4.元素样式操作 ...

  4. jQuery基础DOM和CSS操作

    $('#box').html();//获取 html 内容$('#box').text();//获取文本内容,会自动清理 html 标签$('#box').html('<em>www.li ...

  5. Jquery5 基础 DOM 和 CSS 操作

    学习要点: 1.DOM 简介 2.设置元素及内容 3.元素属性操作 4.元素样式操作 5.CSS 方法 DOM 是一种文档对象模型.方便开发者对HTML 结构元素内容进行展示和修改.在 JavaScr ...

  6. jQuery的基础dom和css操作

    1.元素以及内容操作 $(function () { // alert($("a").html()); // 获取元素中间的html内容,包括标签和文本内容 // alert($( ...

  7. jQuery(基础dom及css操作)

    设置元素内容 元素属性操作 ---------- 元素样式操作 ---------------- 对象数组的遍历 测试代码: $(function () { var v=$('div').css([' ...

  8. 第 5 章 基础 DOM 和 CSS 操作

    在常规的 DOM 元素中,我们可以使用 html()和 text()方法获取内部的数据.html()方法 可以获取或设置 html 内容,text()可以获取或设置文本内容. $('#box').ht ...

  9. jQuery DOM/属性/CSS操作

    jQuery DOM 操作 创建元素 只需要把DOM字符串传入$方法即可返回一个 jQuery 对象 var obj = $('<div class="test">&l ...

随机推荐

  1. 【javascript】html5中使用canvas编写头像上传截取功能

    [javascript]html5中使用canvas编写头像上传截取功能 本人对canvas很是喜欢,于是想仿照新浪微博头像上传功能(前端使用canvas) 本程序目前在谷歌浏览器和火狐浏览器测试可用 ...

  2. ORACLE SQL TUNING ADVISOR 使用方法

    sql tunning advisor 使用的主要步骤: 1 建立tunning task 2 执行task 3 显示tunning 结果 4 根据建议来运行相应的调优方法  下面来按照这个顺序来实施 ...

  3. centos php-fpm nginx配置

    移除旧的软件包:yum remove httpd* php* 安装:yum install php php-fpm yum install php-gd php-mysql php-mbstring ...

  4. python数组的使用

    python数组的使用 2010-07-28 17:17 1.Python的数组分三种类型:(1) list 普通的链表,初始化后可以通过特定方法动态增加元素.定义方式:arr = [元素] (2) ...

  5. Resizing the View(待续。。。。)

    在iOS开发的过程中,控件的大小和位置如何去安排是一个现在看来比较麻烦的事情,需要从上到下的通知和从下到上的调整.而这部分在整个开发过程中是比较重要的,但是却经常没有被掌握.如果将这部分掌握,不管界面 ...

  6. 理解JavaScript中的事件路由冒泡过程及委托代理机制

    当我用纯CSS实现这个以后.我开始用JavaScript和样式类来完善功能. 然后,我有一些想法,我想使用Delegated Events (事件委托)但是我不想有任何依赖,插入任何库,包括jQuer ...

  7. [shell基础]——sort命令

    sort命令 sort是按照ASCII码升序输出,且是从首字符依次向后比较的 常见选项      -c 测试文件是否已经被排序 -r  逆向排序      -n 按照数字数值大小排序 -t  指定分割 ...

  8. 7、android的button如何平铺一张图片?

    我想要实现的效果:,但是设计师给的是这样的:. 首先我想到的是这就像windows电脑设置壁纸有什么拉伸.自适应.平铺等类型,这个应该就是传说中的平铺吧. 那么我们知道,一个普通的button,设置他 ...

  9. yebis error ---depth of field

    前几天在墙外无法登陆cnblogs...导致很多blogs就没写了 有几篇比较值得记下来的,但是我已经不记得了,应该和sao有关scalable ambient obscurance 我似乎回忆起一点 ...

  10. Java递归列出目录下全部文件

    Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */ import java.io.*; class hello{ public static void main(String ...