批改状态:合格
老师批语:多多参考一些课外资料有助于开阔视野, 常用的并不多, 掌握起来非常快
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>getter / setter -1</title><style>body {display: flex;flex-direction: column;align-items: center;color: #666;}form {width: 400px;/* height: 150px; */padding: 20px 10px;border: 1px solid #aaa;box-shadow: 0 0 5px #888;box-sizing: border-box;background-color: #eee;display: grid;grid-template-columns: 80px 200px;gap: 10px;place-content: center center;}button {grid-column: 2 / 3;height: 26px;}button:hover {color: white;background-color: #888;border: none;cursor: pointer;}.red {color: red;}</style></head><body><h2 class="red">用户登录</h2><form action="handle.php" method="GET""><label for="email">Email:</label><input type="email" name="email" id="email" autofocus value="leture@php.cn"/><label for="password">Password:</label><input type="password" name="password" id="password" value="不少于6位" /><label for="confirm">记住我:</label><div><input type="radio" name="save" id="confirm" value="1" checked/><label for="confirm">保存</label><input type="radio" name="save" id="cancel" value="0" /><label for="cancel">放弃</label></div><button>登录</button></form><script src="lib/jquery-3.5.1.js"></script><script>var form = $("form");// attr(): 获取元素的属性// attr(name): 获取属性的值// attr(name,value): 设置属性的值console.log(form.attr("action"));// 设置属性,等于从handle.php变化check.phpform.attr("action", "admin/check.php");console.log(form.attr("action"));// 同时设置多个属性值form.attr({"action": "select.php?id=10","method": 'Post'});// attr()第二个参数支持回调// 获取当前的method属性值// 动态设置action// 根据请求的类型,动态设置action// get ==> query.php?id=1// post ==> register.phpform.attr("action", function() {var method = $(this).attr('method').toLowerCase();console.log(method);// js表达式的的返回值,永远是等号右边return (method === "get") ? 'query.php?id=1' : 'register.php'});</script></body></html>
<script>var form = $("form");// console.log(form);// css(): 设置元素的内联样式的// css(name): getter, 获取console.log(form.css('width'));// 用原生的来获取非内联样式(计算样式)var form = document.forms.item(0);console.log(window.getComputedStyle(form,null).getPropertyValue("width")) ;// css(name, value): setter, 设置$('form').css('border', "3px dashed green")// css({...}): 支持同样设置多个样式属性$('form').css({'border': "3px dashed blue",'background': 'yellow'});// css(callback): 支持回调函数当参数$('form').css('background-color', function (){var bgcolors = ['plum', 'lightblue', 'tan', 'lime']; // index = [0, 3]// Math.floor()向下取整, 3.14 = 3, 4.8 => 4var randomIndex = Math.floor(Math.random()*bgcolors.length);return bgcolors[randomIndex];});</script>
<script src="../0818/lib/jquery-3.5.1.js"></script><script>var form = $("form");// val()获取表单控件value属性的值console.log($('#email').val());// console.log(document.querySelector('form #email').value);// var login = document.forms.namedItem('login');// console.log(login.email.value);// console.log(login.password.value);// var data = {// email : login.email.value,// password: login.password.value// };// var json = JSON.stringify(data);// console.log(json);var data = {email: $('#email').val(),password: $('#password').val(),status: $('input:radio[name=save]:checked').val()};var json = JSON.stringify(data);console.log(json);// val(data): 用来设置$('#email').val('zhulaoshi@qq.com');// 返回默认邮箱$('#email').val(function(){return this.defaultValue;});</script>
<script src="../0818/lib/jquery-3.5.1.js"></script><script>var form = $("form");// 传参就是设置setter, 不传就获取getterconsole.log(document.querySelector('h2').innerText);console.log($('h2').text());document.querySelector('h2').innerText = '用户注册';$('h2').text('不许注册');document.querySelector('h2').innerText = '用户<span style="color:green">注册</span>';document.querySelector('h2').innerHTML = '用户<span style="color:green">注册</span>';$('h2').text('用户<span style="color:green">别注册</span>')$('h2').html('用户<span style="color:green">别注册</span>')</script>
<script src="../0818/lib/jquery-3.5.1.js"></script><script>var form = document.forms.item(0);// 获取表单的位置信息var domRect = form.getBoundingClientRect();// console.log(domRect);console.log(domRect.top);console.log(domRect.left);// jquery来获取var position = $(form).offset();console.log(position.top);console.log(position.left);position.top += 100;console.log(position.top);// 自定义数据属性 data-? 的获取console.log(form.dataset.name);// jquery的 data()console.log($(form).data('name'));// $(form).removeData('data-name')console.log($(form).data('name'));</script>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>jQuery中常用DOM基础</title><style>.active {color: red;}</style></head><body><script src="../0818/lib/jquery-3.5.1.js"></script><script>// 1. 元素的添加// 父元素.append(子元素)// var ol = $("<ol>");// $("body").append(ol);// $("body").append($("<ol>"));$("body").append("<ol>");// 子元素.appendTo(父元素)$("<li>").text("笔记本电脑").appendTo("ol");// 添加内容的时候,可又同步设置样式$("<li>").addClass("active").text("华为手机").appendTo("ol");// 在创建元素时,可以同步的生成属性$("<li>", {id: "hello",style: "background:yellow",}).html('<a href="">显示器</a>').appendTo("ol");// append(callback)$("ol").append(function () {// 动态生成一定数量的<li>var lis = "";for (var i = 0; i < 5; i++) {lis += "<li>最新商品 " + (i + 1) + "</li>";}return lis;});// 从第3个元素前面添加一个<li>, 原位置上. before(新元素)$("ol > li:nth-of-type(3)").before("<li>新新元素1</li>");//新元素.insertAfter(原来的位置)$("<li>新新元素2</li>").insertAfter("ol > li:nth-of-type(4)");// prepend(), prependTo()$('<li class="active">我是第一个元素</li>').prependTo("ol");// 元素的替换: 要被替换掉的元素.replaceWith(新元素)$("ol > li:last-of-type").replaceWith("<h2>太晚了, 大家要坚持</h2>");</script></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>常用过滤器</title></head><body><ul id="first"><li>item1</li><li>item2</li><ul><li>item1</li><li class="red">item2</li><li>item3</li></ul><li>item3</li><li>item4</li><li>item5</li></ul><ul id="second"><li>item1</li><li>item2</li><li>item3</li><li>item4</li><li>item5</li></ul><script src="../0818/lib/jquery-3.5.1.js"></script><script>console.log($("ul#first")[0]);// 过滤器: 先获取较大的范围, 再慢慢的缩小包围圈// console.log($("ul").filter("#first")[0]);// console.log($("ul").filter("#first").get(0).children);// console.log($("ul").filter("#first").children());var children = $("ul").filter("#first").children();console.log(children[0]);console.log(children.first().css("background", "red"));console.log(children.last().css("background", "green"));console.log(children.eq(2).css("background", "yellow"));$("ul#first > li:first-of-type").css("background", "grey");// children只限于子元素; find(),可又获取任何层级的元素// $("ul").filter("#first").find(".red").css("background", "red");// $("ul#first .red").css("background", "lightblue");</script></body></html>
看手册, 除了掌握课堂上提及的DOM操作之外, 将未提及的一些DOM操作做下,并提交上来
查询了下,网上有这样一个blog,内容还不错:
https://www.cnblogs.com/zxt-17862802783/p/7498790.html
里面有两张图挺好的:图1-dom树
图2-常用dom方法
不过自己其实现在最关心的还是怎么结合具体的后台数据库进行这些操作,总感觉中间有一块没有搞定。
后面有时间的话,还是需要结合目前做的那个pm来进行下这块的操作。
理想的状态是
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号