第4章 操作DOM(2)

第1次课

属性操作

prop,attr都可以用于获取元素属性
用法上的相同点:一个参数时都表示获取属性值,二个参数时表示设置属性值

prop,attr区别:
有一些单属性 readonly checked selected disabled必须用prop
其他的按以下原则:
对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

关键代码

<img id="img1" src="../../images/2.jpg" height="300" width="500"/>
<input type="button" id="btn1"  value="换图"/>

 <script>
    //在2,3图片间切换
    var flag=true;
    $(function () {
        $("#btn1").click(function () {
            if(flag==true){
               $("#img1").attr("src","../../images/1.jpg");
               flag=false;
            }else{
                $("#img1").attr("src","../../images/2.jpg");
                flag=true;
            }
        })
    })
 </script>

第二次课
prop制作全选、单选、反选
//改造之前用js写的全选、单选、反选

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="../js/jquery-1.11.2.min.js"></script>
    <script type="text/javascript">
 //全选、反选思路 单选的选中状态与全选状态保持一致
function selectAll() {
            //获取全选按钮的选中状态
            var flag=$("#chkall").prop("checked");
            $("input[name='chkone']").prop("checked",flag);
}
//chkone的思路
        //获取被选中的chkone的个数以及chkone本身的个数
        //如果相等,全选点亮
        //否则灯亮
        function chkOne() {
            var len=$("input[name='chkone']").size();
            var chk_len=$("input[name='chkone']:checked").size();
            if(len==chk_len){
$("#chkall").prop("checked",true);
            }else{
$("#chkall").prop("checked",false);
            }
}
    </script>
</head>
<body>
    <form>
    <input type="checkbox" name="chkall" id="chkall" onclick="selectAll(this)"/>全选
    <table width="100%" border="1" align="center" bordercolor="#dadada">
    <tr align="center">
      <td width="44" height="25" valign="middle">选择</td>
      <td width="98" height="25" valign="middle">姓名</td>
      <td width="132" height="25" valign="middle">证件类型</td>
    </tr>
    <tr align="center">
      <td width="44" height="25" valign="middle"><input type="checkbox" name="chkone" value="1" onclick="chkOne(this)"/></td>
      <td width="98" height="25" valign="middle">用户1</td>
      <td width="132" height="25" valign="middle">1</td>
    </tr>
    <tr align="center">
      <td width="44" height="25" valign="middle"><input type="checkbox" name="chkone" value="2" onclick="chkOne(this)"/></td>
      <td width="98" height="25" valign="middle">用户2</td>
      <td width="132" height="25" valign="middle">1</td>
    </tr>
    </form>
</body>
</html>

val()
<input type="text" name="username" value="wangqj"/>
alert(("input[name='username']").val("wangxiaoyu");

其他:
addClass()
removeClass()
html()
text()

文档操作

第三节课

创建节点
var ("content");
插入append appendTo prepend prependTo 主要用于插入子元素
ul.append(li) 向ul里追加li,从后追加
li.appendTo(ul); 向ul里追加li,从后追加
ul.prepend(li); 向ul里追加li,从前面追加
li.prependTo(ul); 向ul里追加li,从前面追加

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../js/jquery-1.11.2.min.js"></script>
<script>
$(function () {
//新建节点
var $li=$("<li>javaweb课程</li>");
//追加,在后面插入
//$("ul").append($li);
//$li.appendTo($("ul"));
//$("ul").prepend($li);
$li.prependTo($("ul"));
 })
</script>
</head>
<body>
<h2>java课程</h2>
<ul>
<li>mysql</li>
<li>javase</li>
<li>web前台</li>
</ul>
</body>
</html>

学生试验上面的四个方法和第25页的四个方法 这四个主要用于插入同辈元素
after(content|fn) 在每个匹配的元素之后插入内容。

   var $h3=$("<h3>h3333333</h3>");
   $("h2").after($h3);

insertAfter(content) 把所有匹配的元素插入到另一个、指定的元素元素集合的后面。

   var $h3=$("<h3>h3333333</h3>");
   $h3.insertAfter($("h2"));

before(content|fn) 在每个匹配的元素之前插入内容。
var ("<h3>h3333333</h3>");
h3);

insertBefore(content) 把所有匹配的元素插入到另一个、指定的元素元素集合的前面。
var ("<h3>h3333333</h3>");
("h2"));

删除
remove() 操作
替换
replace()
replaceWith() 将所有匹配的元素替换成指定的HTML或DOM元素。

        var $li_jquery=$("<li>javaweb</li>");
        $("ul li:eq(3)").replaceWith($li_jquery); //用后面括号里的内容替换前面括号里的。

replaceAll(selector) 用匹配的元素替换掉所有selector匹配到的元素。用前面的内容替换掉后面括号里满足条件的所有内容

复制
clone()

       //选中要复制的对象,然后调用 clone方法 再追加到ul后面
        $("ul li:eq(1)").clone().appendTo("ul");

第四节课

节点删除
empty() 清空子节点
remove() 清空所有内容,包括他自己,事件也删除
detach() 清空所有内容,包括他自己,事件保留

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../js/jquery-1.11.2.min.js"></script>
<style>
div{
width: 200px;
height: 200px;
background-color: darkgreen;
}
</style>
<script>
$(function () {
$("#btn1").click(function () {
var $p=$("p");
$p.remove();
//$p.detach();
$("div").append($p);
});
$("p").click(function () {
alert("p被点击");
})
})
</script>
</head>
<body>
<input type="button" id="btn1" value="测试删除">
<div id="div1">div节点内容</div>
<p>p11111111111</p>
</body>
</html>

学生练习:
动态为表格删除和添加行

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../js/jquery-1.11.2.min.js"></script>
<script>
$(function () {
$(".del").click(function () {
$(this).parents('tr').remove();
})
$("#btn2").click(function () {
   $("table").append("<tr>\n" +
   "<td><input type=\"checkbox\"></td>\n" +
   "<td>顾俊宁</td>\n" +
   "<td>男</td>\n" +
   "<td><span class=\"del\">删除</span></td>\n" +
   "</tr>")
})
})
</script>
</head>
<body>
<table>
<tr>
<td><input type="checkbox"></td>
<td>姓名</td>
<td>性别</td>
<td>操作</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>陈昊</td>
<td>男</td>
<td><span class="del">删除</span></td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>晓宇</td>
<td>男</td>
<td><span class="del">删除</span></td>
</tr>
<input type="button" id="btn2" value="新增"/>
</table>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_34262482/article/details/87638284