jquery接触初级-----juqery DOM操作 之一

时间:2023-03-09 06:16:52
jquery接触初级-----juqery DOM操作 之一

1. DOM 分为三个部分:DOM core ,HTML_DOM,CSS_DOM;

1.1.document.getElementById(),document.getElementsByTagName,getAttribute(),setAttribute() 这些方法属于DOM core

1.2. docuement.froms  //  HTML_DOM获取一个表单对象

element.src            //HTML_DOM获取元素的src属性

类似这样的属于HTML_DOM

1.3.CSS_DOM针对CSS操作,CSS_DOM主要用于获取和设置style对象的各种属性

例如:element.style.color = "red" ;  设置元素的color属性

2. 查找节点:

2.1 查找元素节点

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<title>Document</title>
</head>
<script>
$(function() {
var $li = $("ul li:eq(1)");
var li_txt = $li.text();
console.log(li_txt);
});
</script>
<body>
<p title="请选择你最喜欢的水果">你最喜欢的水果是设么</p>
<ul>
<li title="苹果" class="shuoguo1">苹果</li>
<li title="梨子" class="shuoguo2">梨子</li>
<li title="香蕉" class="shuoguo3">香蕉</li> </ul>
</body>
</html>

jquery接触初级-----juqery DOM操作 之一

2.2.1  查找属性节点

 <script>
$(function() {
var $li = $("ul li:eq(1)");
var li_txt = $li.class;
console.log(li_txt);
});
</script>

运行结果错误:

jquery接触初级-----juqery DOM操作 之一

上面的原因:写法错误,jquery的对象不能直接调用js的属性,要使用jquery的方法来调用

改正为

 <script>
$(function() {
var $li = $("ul li:eq(1)");
var li_txt = $li.attr('class');
console.log(li_txt);
});
</script>

结果:

jquery接触初级-----juqery DOM操作 之一

2.2.2  设置属性节点

 $(function() {
var $li = $("ul li:eq(1)");
$li.attr({"data_title": "lizi","my_name": "huanying2015"});
});

运行结果:

jquery接触初级-----juqery DOM操作 之一

类似 attr() 方法的还有一些,例如:html(),val(),height(),width(),text(),css()等

2.2.3 删除属性

$(function() {
var $li = $("ul li:eq(1)");
$li.removeAttr("title");
});

运行结果:

jquery接触初级-----juqery DOM操作 之一

设置属性和删除属性,还可以使用prop()和removeProp() 方法进行,与attr()和removeAttr()类似

2.2.4 设置样式:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<title>Document</title>
</head>
<body>
<p title="请选择你最喜欢的水果">你最喜欢的水果是设么</p>
<ul>
<li title="苹果" class="shuoguo1">苹果</li>
<li title="梨子">梨子</li>
<li title="香蕉" class="shuoguo3">香蕉</li>
</ul>
</body>
</html>
 <script>
$(function() {
var $li = $("ul li:eq(1)");
// $li.attr("class", "nihao");
$li.addClass("nihao");
});
</script>

运行结果:attr()和addClass()当没有样式时,结果是一样的,就是上面的两种方式;

jquery接触初级-----juqery DOM操作 之一

当存在一个样式时,addClass可以进行追加样式:在nihao 的基础上追加一个 huanying2015 样式

 <script>
$(function() {
var $li = $("ul li:eq(1)");
$li.attr("class", "nihao");
$li.addClass("huanying2015");
});
</script>

运行结果:

jquery接触初级-----juqery DOM操作 之一

2.2.5 对样式进行切换:toggleClass()

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<title>Document</title>
</head>
<style>
.nihao {
background: red;
}
</style>
<script>
$(function() {
var $li = $("ul li:eq(1)");
var Obtn = $(".btn");
Obtn.on('click', function() {
$li.toggleClass('nihao');
});
});
</script>
<body>
<p title="请选择你最喜欢的水果">你最喜欢的水果是设么</p>
<ul>
<li title="苹果" class="shuoguo1">苹果</li>
<li title="梨子">梨子</li>
<li title="香蕉" class="shuoguo3">香蕉</li>
</ul>
<input type="button" value="切换" class="btn">
</body>
</html>

在第20行执行样式切换,运行结果:

jquery接触初级-----juqery DOM操作 之一

2.2.6 判断元素是否拥有某个属性:hasClass(),现在li:eq(1)中添加属性 huanying2015

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<title>Document</title>
</head>
<body>
<p title="请选择你最喜欢的水果">你最喜欢的水果是设么</p>
<ul>
<li title="苹果" class="shuoguo1">苹果</li>
<li title="梨子" class="huanying2015">梨子</li>
<li title="香蕉" class="shuoguo3">香蕉</li>
</ul>
<input type="button" value="切换" class="btn">
</body>
</html>
 <script>
$(function() {
var $li = $("ul li:eq(1)");
var O_has = $li.hasClass("huanying2015");
console.log(O_has);
});
</script>

运行结果:

jquery接触初级-----juqery DOM操作 之一

2.2.7 获取元素的内容:html()和text() 的区别

 <body>
<p title="请选择你最喜欢的水果">你最喜欢的水果是设么</p>
<ul>
<li title="苹果" class="shuoguo1">苹果</li>
<li title="梨子" class="huanying2015"> <strong>这是一个梨子</strong></li>
<li title="香蕉" class="shuoguo3">香蕉</li>
</ul>
<input type="button" value="切换" class="btn">
</body>
 <script>
$(function() {
var $li = $("ul li:eq(1)");
var O_html = $li.html();
var O_text = $li.text();
console.log(O_html);
console.log(O_text);
});
</script>

运行结果:html()会把strong标签也打印出来,text()只打印文本内容

jquery接触初级-----juqery DOM操作 之一