Java零基础教学文档第五篇:jQuery

今日新篇章
【jQuery】
【主要内容】

  1. jQuery简介

  2. jQuery安装

  3. jQuery语法

  4. jQuery选择器

  5. jQuery事件处理

  6. jQueryDOM操作

  7. jQuery元素遍历

  8. jQuery过滤

  9. jQuery其它方法

【学习目标】
在这里插入图片描述

1.jQuery简介

1.1 jQuery简介
jQuery 库可以通过一行简单的标记被添加到网页中。

1.2 需要具备的基础知识
在开始学习 jQuery 之前,应该对以下知识有基本的了解:

HTML

CSS

JavaScript

1.3 什么是 jQuery
jQuery是一个JavaScript函数库。 安全性、效率性、简洁性

jQuery是一个轻量级的"写的少,做的多"的JavaScript库。

jQuery库包含以下功能:

Ø HTML 元素选取

Ø HTML 元素操作

Ø CSS 操作

Ø HTML 事件函数

Ø JavaScript 特效和动画

Ø HTML DOM 遍历和修改

Ø AJAX

提示: 除此之外,jQuery还提供了大量的插件。

1.4 为什么使用 jQuery
目前网络上有大量开源的 JS 框架, 但是 jQuery 是目前最流行基于dom操作的 JS 框架,而且提供了大量的扩展。

很多大公司都在使用 jQuery, 例如:

Google

阿里

腾讯

百度

Microsoft

IBM

Netflix

2.jQuery安装

2.1 官网
https://jquery.com/
在这里插入图片描述

2.2 下载

有两个版本的 jQuery 可供下载:

Production version - 用于实际的网站中,已被精简和压缩。

Development version - 用于测试和开发(未压缩,是可读的代码)

以上两个版本都可以从www.jquery.com中下载。
在这里插入图片描述

https://jquery.com/download/
在这里插入图片描述

https://code.jquery.com/jquery-3.5.1.min.js

在本在创建一个jquery-3.5.1.min.js的文件

复制网页里面的代码到这个文件里就OK了

或者直接上github上面下载

https://github.com/jquery/jquery/tags
在这里插入图片描述

3.jQuery 简单语法

3.1 JQuery作用**
通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行"操作"(actions)。

3.2 jQuery 语法
jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。

基础语法: $(selector).action()

美元符号定义 jQuery

选择符(selector)“查询"和"查找” HTML 元素

jQuery 的 action() 执行对元素的操作

实例:

<script>

    $(this).hide() - 隐藏当前元素

    $("p").hide() - 隐藏所有 <p> 元素

    $("p.test").hide() - 隐藏所有 的 <p> 元素

    $("#test").hide() - 隐藏所有 id="test" 的元素

</script>

3.3 文档就绪事件

这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码。

如果在文档没有完全加载之前就运行函数,操作可能失败。

3.3.1 方法一

<script>

    $(document).ready(function(){

        // 开始写 jQuery 代码...

    });

</script>

3.3.2 方法二

<script>

    $(function(){

        // 开始写 jQuery 代码...

    });

</script>

4.jQuery 选择器

4.1 什么是jQuery 选择器**
jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。

jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。

jQuery 中所有选择器都以美元符号开头:$()。

4.2 相关重点选择器【重点掌握】
4.2.1 元素选择器

jQuery 元素选择器基于元素名选取元素。

在页面中选取所有 p 元素:

$(“p”)/jQuery(“p”)

实例

用户点击按钮后,所有 p 元素都隐藏:

实例

<script>

    $(function(){

        $("button").click(function(){

            $("p").hide();

        });

    });

</script>

4.2.2 #id 选择器

jQuery #id 选择器通过 HTML 元素的 id 属性选取指定的元素。

页面中元素的 id 应该是唯一的,所以您要在页面中选取唯一的元素需要通过 #id 选择器。

通过 id 选取元素语法如下:

$(“#test”)

实例

当用户点击按钮后,有 id=“test” 属性的元素将被隐藏:

实例

<body>

<div id="test"></div>

</body>

<script>

    $(function(){

        $("button").click(function(){

            $("#test").hide();

        });

    });

</script>

4.2.3 .class 选择器

jQuery 类选择器可以通过指定的 class 查找元素。

语法如下:

$(“.test”)

实例

用户点击按钮后所有带有 属性的元素都隐藏:

实例

<body>

<div></div>

</body>

<script>

    $(function(){

        $("button").click(function(){

            $(".test").hide();

        });

    });

</script>

4.3 其它选择器【熟悉】

$(“*”)选取所有元素

$(this) 选取当前的html元素

$(“p.intro”) 选择class为intro的p元素

$(“p:first”) 选取第一个p元素

$(“p:last”) 选取最后一个p元素

$(“[href]”) 选取带有href属性的元素

$(“[href=]”) 选取带有href并属性值等于某个值的元素

$(“a[target=’_blank’]”) 选取a标签中有target属性并且属性值为_blank的元素

$(“:button”) 选取页面所有的button

$(“:checked”) 选取页面所有的被选中

$(“tr:even”) 选取偶数位的tr

$(“tr:odd”)选取奇数位的tr

$(“:selected”)选取select中被选中的元素

5.jQuery 事件

5.1 什么是事件?**
页面对不同访问者的响应叫做事件。

事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。

5.1.1 实例:

在元素上移动鼠标。

选取单选按钮

点击元素

在事件中经常使用术语"触发"(或"激发")例如: “当您按下按键时触发 keypress 事件”。

5.1.2 常见 DOM 事件:

5.2 简单用法

在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery 方法。

页面中指定一个点击事件:

$(“p”).click();

下一步是定义什么时间触发事件。可以通过一个事件函数实现:

$(“p”).click(function(){

// 动作触发后执行的代码!!

});

5.3 常用的 jQuery 事件方法
要想使用事件是必须使用文档就绪的方法的

$()

$() 方法允许我们在文档完全加载完后执行函数。该事件方法在 jQuery 简单语法中已经提到过。

5.3.1 单击事件

事件 描述

             click                                     鼠标点击某个对象

实例:给文档中的 id=“box” 元素添加点击事件。

<script>

    $(function () {

        $("#box").click(function () {

            alert("单击事件");

        })

    })

</script>

在jQuery的事件中,我们也可以主动的响应对应的事件。

$(“#box”).click();

5.3.2 双击事件

事件 描述

            dblclick                  鼠标双击某个对象

实例:给文档中的 id=“btn” 元素添加点击事件。

<script>

    $(function () {

        $("#box").dblclick(function () {

            console.log("双击事件");

        });

    })

</script>

5.3.3 焦点事件

事件 描述

 focus                       元素获得焦点时触发

 blur                       元素失去焦点时触发

实例:给文档中的input元素添加点击事件。

<script>

    $(function () {

        $("input").focus(function () {

            console.log("获得焦点");

        });

        $("input").blur(function () {

            console.log("失去焦点");

        });

    })

</script>

5.3.4 改变事件

       事件                                  描述

change 域的内容被改变触发,用于input、select和textarea标签。

当用于 select 元素时,change 事件会在选择某个选项时发生。当用于 input 或 textarea 时,该事件会在元素失去焦点时发生。

实例:给文档中的select和input元素添加改变事件。

<body>

故乡:<select name="city" id="city">

    <option value="1">北京</option>

    <option value="2">上海</option>

    <option value="3">广州</option>

    <option value="4">武汉</option>

</select>

密码:<input type="password" placeholder="请输入密码">

<script>

    $("select").change(function () {

        console.log("选中的城市:" + $(this).val());

    });

    $("input").change(function () {

        console.log("输入的内容:" + $(this).val());

    });

</script>

</body>

5.3.5 鼠标事件

当鼠标指针穿过元素时,会发生 onmouseenter 事件。该事件大多数时候会与 onmouseleave 事件一起使用。onmouseover 事件和 onmouseout 事件一起使用。

与 onmouseover 事件不同,只有在鼠标指针穿过被选元素时,才会触发 onmouseenter 事件。如果鼠标指针穿过任何子元素,同样会触发 onmouseover 事件。

实例:给文档中的id="box"元素添加鼠标事件。

<script>

    $(function () {

        $("#box").mouseenter(function () {

            console.log("鼠标进入");

        });

        $("#box").mouseleave(function () {

            console.log("鼠标离开")

        });

        $("#box").mousedown(function () {

            console.log("鼠标按下");

        });

        $("#box").mouseup(function () {

            console.log("鼠标抬起");

        });

        $("#box").mousemove(function () {

            console.log("鼠标移动");

        });

    })

</script>
 

5.3.6 hover事件

语法: hover([fnOver,] fnOut)

                          参数                                       描述

fnOver 鼠标移到元素上要触发的函数。

fnOut 鼠标移出元素要触发的函数。

一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。

当鼠标移动到一个匹配的元素上面时(mouseenter),会触发指定的第一个函数。当鼠标移出这个元素时(mouseleave),会触发指定的第二个函数。

<script>

    $(function () {

        $("#box").hover(function () {

            console.log("鼠标进入");

        }, function () {

            console.log("鼠标离开");

        });

    })

</script>

5.4 event事件对象
5.4.1 event属性
在这里插入图片描述

5.4.2 event方法

方法 描述 事件

stopPropagation() 阻止事件冒泡。 任意事件

preventDefault() 阻止事件的默认动作。 任意事件

事件冒泡:是因为事件会按照DOM的层次结构像水泡一样不多向上直至顶端。

实例:阻止文档中class=“child” 的元素事件派发。

<body>

<div>

    <div>点击我</div>

</div>

<script>

    $(".child").on("click", function (event) {

        console.log("子元素响应事件");

        event.stopPropagation();

    });

    $(".parent").on("click", function (event) {

        console.log("父元素响应事件");

    });

</script>

</body>
 

 

实例:阻止文档中 元素的默认行为。

<body>

<a href="https://www.baidu.com">百度一下,你就知道</a>

<script>

    $(".link").on("click", function (event) {

        // 阻止事件的默认动作。

        event.preventDefault();

    })

</script>

</body>

6.jQuery DOM操作【重中之中】

6.1 jQuery 捕获**
jQuery DOM 操作

jQuery 中非常重要的部分,就是操作 DOM 的能力。

jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。

DOM = Document Object Model(文档对象模型)

DOM 定义访问 HTML 和 XML 文档的标准:

"W3C 文档对象模型独立于平台和语言的界面,允许程序和脚本动态访问和更新文档的内容、结构以及样式。

6.1.1 获得内容 - text()、html() 以及 val()

三个简单实用的用于 DOM 操作的 jQuery 方法:

text() - 设置或返回所选元素的文本内容

html() - 设置或返回所选元素的内容(包括 HTML 标记)

val() - 设置或返回表单字段的值

下面的例子演示如何通过 jQuery text() 和 html() 方法来获得内容:

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

    <script src="lib/jquery.min.js" type="text/javascript" charset="utf-8"></script>

</head>

<body>

<p id="test">这是段落中的 <b>粗体</b> 文本。</p>

<button id="btn1">显示文本</button>

<button id="btn2">显示 HTML</button>

</body>

<script>

    $(function(){

        $("#btn1").click(function(){

            alert("Text: " + $("#test").text());

        });

        $("#btn2").click(function(){

            alert("HTML: " + $("#test").html());

        });

    });

</script>

</html>
下面的例子演示如何通过 jQuery val() 方法获得输入字段的值:

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

    <script src="lib/jquery.min.js" type="text/javascript" charset="utf-8"></script>

</head>

<body>

<p>名称: <input type="text" id="test" value="jQuery教程"></p>

<button>显示值</button>

</body>

<script>

    $(function(){

        $("button").click(function(){

            alert("值为: " + $("#test").val());

        });

    });

</script>

</html>

6.1.2 获取属性 - attr()

jQuery attr() 方法用于获取属性值。

下面的例子演示如何获得链接中 href 属性的值:

实例

<script>

    $(function(){

        $("button").click(function(){

            alert($("#powernode").attr("href"));

        });

    });

</script>

</head>

<body>

<p><a href="http://www.runoob.com" id="powernode">jQuery教程</a></p>

<button>显示 href 属性的值</button>

</body>

</html>

6.1.3 获取属性 - prop()

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。快速,准确。

对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

注意:在select和radio和checkbox中我们取selected checked属性应使用prop

6.2 jQuery 设置
6.2.1 设置内容 - text()、html() 以及 val()【重点】

我们将使用前一章中的三个相同的方法来设置内容:

text() - 设置或返回所选元素的文本内容

html() - 设置或返回所选元素的内容(包括 HTML 标记)

val() - 设置或返回表单字段的值

下面的例子演示如何通过 text()、html() 以及 val() 方法来设置内容:

实例

$("#btn1").click(function(){

    $("#test1").text("Hello world!");

});

$("#btn2").click(function(){

    $("#test2").html("<b>Hello world!</b>");

});

$("#btn3").click(function(){

    $("#test3").val("powernode");

});

6.2.2 text()、html() 以及 val() 的回调函数

上面的三个 jQuery 方法:text()、html() 以及 val(),同样拥有回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。

下面的例子演示带有回调函数的 text() 和 html():

$("#btn1").click(function(){

    $("#test1").text(function(i,origText){

        return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")";

    });

});

$("#btn2").click(function(){

    $("#test2").html(function(i,origText){

        return "旧 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")";

    });

});
 

【注意】:html(function(index, html)) index为元素在集合中的索引位置,html为原先的HTML值

6.2.3 设置属性 - attr()

jQuery attr() 方法也用于设置/改变属性值。

下面的例子演示如何改变(设置)链接中 href 属性的值:

$(“button”).click(function(){

$("#powernode").attr("href","http://www.whpowernode.com");

});

attr() 方法也允许您同时设置多个属性。

下面的例子演示如何同时设置 href 和 title 属性:

实例

$("button").click(function(){

    $("#powernode").attr({

        "href" : "http://www.whpowernode.com",

        "title" : "武汉动力节点"

    });

});

6.2.4 attr() 的回调函数

jQuery 方法 attr(),也提供回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。

下面的例子演示带有回调函数的 attr() 方法:

$("button").click(function(){

    $("#powernode").attr("href", function(i,origValue){

        return origValue + "/java";

    });

});

6.2.5 设置属性 - prop()

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。快速,准确。

对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

注意:在select和radio和checkbox中我们取selected checked属性应使用prop

6.3 jQuery 添加元素
添加新的 HTML 内容

我们将学习用于添加新内容的四个 jQuery 方法:

append() - 在被选元素的内部结尾插入内容

prepend() - 在被选元素的内部开头插入内容

after() - 在被选元素之后插入内容

before() - 在被选元素之前插入内容

6.3.1 jQuery append() 方法

jQuery append() 方法在被选元素的内部结尾插入内容。

实例

$(“p”).append(“追加文本”);

6.3.2 jQuery prepend() 方法

jQuery prepend() 方法在被选元素的内部开头插入内容。

实例$(“p”).prepend(“在开头追加文本”);

通过 append() 和 prepend() 方法添加若干新元素

在上面的例子中,我们只在被选元素的开头/结尾插入文本/HTML。

不过,append() 和 prepend() 方法能够通过参数接收无限数量的新元素。可以通过 jQuery 来生成文本/HTML(就像上面的例子那样),或者通过 JavaScript 代码和 DOM 元素。

在下面的例子中,我们创建若干个新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 append() 方法把这些新元素追加到文本中(对 prepend() 同样有效):

实例

function appendText()

{

    var txt1="<p>文本。</p>";              // 使用 HTML 标签创建文本

    var txt2=$("<p></p>").text("文本。");  // 使用 jQuery 创建文本

    var txt3=document.createElement("p");

    txt3.innerHTML="文本。";               // 使用 DOM 创建文本 text with DOM

    $("body").append(txt1,txt2,txt3);        // 追加新元素

}
 

6.3.3 jQuery after() 和 before() 方法

jQuery after() 方法在被选元素之后插入内容。

jQuery before() 方法在被选元素之前插入内容。

实例

$(“img”).after(“在后面添加文本”);

$(“img”).before(“在前面添加文本”);

通过 after() 和 before() 方法添加若干新元素

after() 和 before() 方法能够通过参数接收无限数量的新元素。可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建新元素。

在下面的例子中,我们创建若干新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 after() 方法把这些新元素插到文本中(对 before() 同样有效):

function afterText()

{

    var txt1="<b>I </b>";                    // 使用 HTML 创建元素

    var txt2=$("<i></i>").text("love ");     // 使用 jQuery 创建元素

    var txt3=document.createElement("big");  // 使用 DOM 创建元素

    txt3.innerHTML="jQuery!";

    $("img").after(txt1,txt2,txt3);          // 在图片后添加文本

}

6.4 jQuery 删除元素
通过 jQuery,可以很容易地删除已有的 HTML 元素。

删除元素/内容

如需删除元素和内容,一般可使用以下两个 jQuery 方法:

remove() - 删除被选元素(及其子元素)

empty() - 从被选元素中删除子元素

6.4.1 jQuery remove() 方法

jQuery remove() 方法删除被选元素及其子元素。

实例 $(“#div1”).remove();

6.4.2 jQuery empty() 方法

jQuery empty() 方法删除被选元素的子元素。

实例 $(“#div1”).empty();

3,过滤被删除的元素

jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。

该参数可以是任何 jQuery 选择器的语法。

下面的例子删除 的所有

元素:

实例

$(“p”).remove(“.italic”);

6.5 jQuery CSS 类
jQuery 操作 CSS

jQuery 拥有若干进行 CSS 操作的方法。我们将学习下面这些:

addClass() - 向被选元素添加一个或多个类

removeClass() - 从被选元素删除一个或多个类

toggleClass() - 对被选元素进行添加/删除类的切换操作

css() - 设置或返回样式属性

实例样式表

下面的样式表将用于本页的所有例子:

.important

{

      font-weight:bold;

      font-size:xx-large;

}

.blue

{

      color:blue;

}

6.5.1 jQuery addClass() 方法

下面的例子展示如何向不同的元素添加 class 属性。当然,在添加类时,您也可以选取多个元素:

实例

$("button").click(function(){

    $("h1,h2,p").addClass("blue");

    $("div").addClass("important");

});

也可以在 addClass() 方法中规定多个类:实例

$("button").click(function(){

    $("#div1").addClass("important blue");

});

6.5.2 jQuery removeClass() 方法

下面的例子演示如何在不同的元素中删除指定的 class 属性:

$("button").click(function(){

    $("h1,h2,p").removeClass("blue");

});

6.5.3 jQuery toggleClass() 方法

下面的例子将展示如何使用 jQuery toggleClass() 方法。该方法对被选元素进行添加/删除类的切换操作:

$("button").click(function(){

    $("h1,h2,p").toggleClass("blue");

});

6.6 jQuery css() 方法

css() 方法设置或返回被选元素的一个或多个样式属性。

6.6.1 返回 CSS 属性

如需返回指定的 CSS 属性的值,请使用如下语法:

css(“propertyname”);

下面的例子将返回首个匹配元素的 background-color 值:

实例

$(“p”).css(“background-color”);

6.6.2 设置 CSS 属性

如需设置指定的 CSS 属性,请使用如下语法:

css(“propertyname”,“value”);

下面的例子将为所有匹配元素设置 background-color 值:

实例

$(“p”).css(“background-color”,“yellow”);

6.6.3 设置多个 CSS 属性

如需设置多个 CSS 属性,请使用如下语法:

css({“propertyname”:“value”,“propertyname”:“value”,…});

下面的例子将为所有匹配元素设置 background-color 和 font-size:

实例

$(“p”).css({“background-color”:“yellow”,“font-size”:“200%”});

7.jQuery和DOM对象互转【重点】

7.1 jQuery对象转成DOM对象**
两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index);

(1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。

如:var v = v = v=(“#v”) ; //jQuery对象

var v=$v[0]; //DOM对象

alert(v.checked) //检测这个checkbox是否被选中

(2)jQuery本身提供,通过.get(index)方法,得到相应的DOM对象

如:var v = v= v=(“#v”); //jQuery对象

var v=$v.get(0); //DOM对象

alert(v.checked) //检测这个checkbox是否被选中

7.2 DOM对象转成jQuery对象
对于已经是一个DOM对象,只需要用 ( ) 把 D O M 对象包装起来,就可以获得一个 j Q u e r y 对象了。 ()把DOM对象包装起来,就可以获得一个jQuery对象了。 ()DOM对象包装起来,就可以获得一个jQuery对象了。(DOM对象)

如:var v=document.getElementById(“v”); //DOM对象

var v = v= v=(v); //jQuery对象

转换后,就可以任意使用jQuery的方法了。

通过以上方法,可以任意的相互转换jQuery对象和DOM对象。需要再强调注意的是:DOM对象才能使用DOM中的方法,jQuery对象是不可以用DOM中的方法。

8.【掌握】表单处理

8.1 解决表单提交的冒泡问题**

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery.min.js" charset="UTF-8"></script>



</head>

<body>

<h1>添加用户</h1>

<form action="#" method="get" id="frm">

    ID:<input type="text" id="id" name="id"><br>

    NAME:<input type="text" id="name" name="name"><br>

    gender:<input type="text" id="gender" name="gender"><br>

    SAL:<input type="text" id="sal" name="sal"><br>

    <input type="button" id="doSubmit" value="提交">

    <input type="button" id="doReset" value="重置">

</form>

</body>





<script>

    $(function () {

        $("#doSubmit").on("click", function () {

           console.log("doSubmit的点击事件被触发")

            // $("#frm").submit();



        })

        $("#doReset").on("click", function () {

            //通过js去重置  在jquery里面的表单对象没有reset()方法  原生的js里面的reset()方法

            $("#frm")[0].reset();

        })



    });

</script>



</html>
 

8.2 serializeArray()与serialize()的区别
serializeArray()返回一个JSON数组 ,里面是表单属性的name的属性值和value

serialize()返回的是一个 查询参数id=1&name=2&gender=3&sal=4

9.掌握】jQuery each()方法

9.1 语法**
$(selector).each(function(index,element))
在这里插入图片描述

9.2 案例
在这里插入图片描述

<input type="checkbox" name="music" value="1" />爱你一万年<br />

<input type="checkbox" name="music" value="2" />忘情水<br />

<input type="checkbox" name="music" value="3" />天意<br />

<input type="checkbox" name="music" value="4" />冰雨<br />

<input type="checkbox" name="music" value="5" />成都<br />

<input type="checkbox" name="music" value="6" />武汉<br />

<input type="checkbox" name="music" value="7" />北京北京<br />

<input type="checkbox" name="music" value="8" />海阔天空<br />

<input type="checkbox" name="music" value="9" />真的爱你<br />

<input type="checkbox" name="music" value="10" />光辉岁月<br />

<input type="checkbox" name="music" value="11" />红日<br />

<input type="checkbox" name="music" value="12" />小苹果<br />

9.3 循环JSON数组生成无刷新的table并能删除和添加
在这里插入图片描述

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>01表单处理.html</title>

    <!--引入jquery-->

    <script src="../js/jquery-3.6.0.js" charset="UTF-8"></script>



</head>

<body>

<h1>添加用户</h1>

<form id="userAddFrm" action="#" method="get">

    ID:<input type="text" name="id">

    NAME:<input type="text" name="name">

    SEX:<input type="radio" name="sex" checked value="男"><input type="radio" value="女" name="sex">女

    SAL:<input type="text" name="sal">

    <input type="button" id="doSubmit" value="添加">

    <input type="reset" value="重置">

</form>

<hr>

<h1>用户列表</h1>

<table id="userTable" width="100%" border="1" cellspacing="3" cellpadding="3" style="border: 1px solid green">



</table>

</body>

<script>

    //声明一个json数组的容器

    let users=[{"id":1,"name":"小明","sex":"男","sal":5998.00}

    ,{"id":2,"name":"小红","sex":"女","sal":1998.00}

    ,{"id":3,"name":"小丽","sex":"女","sal":2998.00}

    ,{"id":4,"name":"小芳","sex":"女","sal":3998.00}]



    //数据初始化的方法

    function  initTableData(){

        let userTable=$("#userTable");

        let html="<tr><th>ID</th><th>NAME</th><th>SEX</th><th>SAL</th><th>操作</th></tr>"

        $.each(users,function (index,item){

            html+="<tr><th>"+item.id+"</th><th>"+item.name+"</th><th>"+item.sex+"</th><th>"+item.sal+"</th><th><input type='button' οnclick='del("+item.id+")' value='删除'></th></tr>"

        })

        userTable.html(html)

    }

    initTableData();



    //监听添加按钮的事件

    $("#doSubmit").click(function (){

        let userAddFrm=$("#userAddFrm");

        let arrays=userAddFrm.serializeArray()

        let jsonObj={};

        $.each(arrays,function (index,item){

            jsonObj[item.name]=item.value;

        })

        //把组装好的json对象放到users数组里面

        users.push(jsonObj);

        //刷新表格

        initTableData()

    })

    function del(id){

        //循环users找到id=传入id这个对象,再删除

        $.each(users,function (index,item){

            if(item.id==parseInt(id)){

                //删除

                users.splice(index, 1);

                //刷新表格

                initTableData()

                return;

            }

        })

    }



</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/319271.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java自动化将用例和截图一起执行测试放入world中直接生成测试报告【搬代码】

1.首先我们得用例写好之后放入文档中&#xff0c;把不用的案例类型、前置条件去掉之后&#xff0c;如图&#xff1a; 放到桌面后&#xff0c;先看执行结果&#xff1a; 直接上代码 package com.znzdh.qitagongju;import jxl.Sheet; import jxl.Workbook; import org.apache…

了解集群,以及集群是什么?

每个集群即一个独立运行的文档数据库&#xff0c;分片集群架构由路由&#xff08;mongos&#xff09;、配置&#xff08;config&#xff09;和分片&#xff08;shard&#xff09;组成。 数据读写请求经mongos分发&#xff0c;通过查询config信息&#xff0c;并行分配到相应sha…

C语言之字符串和指针

目录 用数组实现的字符串和用指针实现的字符串 █用数组实现的字符串str █用指针实现的字符串ptr 注意 用数组和指针实现字符串的不同点 字符串数组 用数组实现的字符串的数组——二维数组 用指针实现的字符串数组——指针数组 注意 字符串和指针有着紧密的联系&#…

力扣(105. 从前序与中序遍历序列构造二叉树,106. 从中序与后序遍历序列构造二叉树)

题目1链接 题目1&#xff1a; 思路&#xff1a;使用前序确定根&#xff0c;使用中序分左右子树&#xff0c;分治法。 难点&#xff1a;如何控制递归确定左右子树。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* T…

【STM32】FLASH闪存

1 FLASH闪存简介 本节所指STM32内部闪存&#xff0c;即下载程序的时候&#xff0c;程序存储的地方。&#xff08;非易失性&#xff09; STM32F1系列的FLASH包含程序存储器、系统存储器&#xff08;bootloader&#xff0c;不允许修改&#xff09;和选项字节三个部分&#xff0…

华西建筑智能化寻找志同道合的创业团队

我今天四十多了&#xff0c;之前也创过业&#xff0c;做软件开发系统集成的。 19年进入华西建筑装饰工程有限公司负责机电安装及弱电智能化版块。后公司成立建筑智能化事业部&#xff0c;我负责。现在想全身心打造施工企业项目管理平台&#xff0c;同时进军智慧康养领域。我想…

1.5矩阵元素的引用

通过下标来引用矩阵的元素 A(3, 2)表示A矩阵第3行第2列的元素。 >> arr [1,2,3;4,5,6]; >> arr(4, 5) 10arr 1 2 3 0 04 5 6 0 00 0 0 0 00 0 0 0 10>> 如果引用元素超过矩阵的大小将自…

Windows下面基于pgsql15的备份和恢复

一、基础备份 1.创建一个文件用来存储备份数据 2.备份指令 $CurrentDate Get-Date -Format "yyyy-MM-dd" $OutputDirectory "D:\PgsqData\pg_base\$CurrentDate" $Command "./pg_basebackup -h 127.0.0.1 -U postgres -Ft -Pv -Xf -z -Z5 -D $O…

Navicat 16 for MySQL:打造高效数据库开发管理工具

随着数据的快速增长和复杂性的提升&#xff0c;数据库成为了现代应用开发中不可或缺的一部分。而在MySQL数据库领域&#xff0c;Navicat 16 for MySQL作为一款强大的数据库开发管理工具&#xff0c;正受到越来越多开发者的青睐。 Navicat 16 for MySQL拥有丰富的功能和直观的界…

功能权限篇

文章目录 1. 如何设计一套权限系统1.1 目标1.2 权限模型1.2.1 模型一RBAC1.2.2 模型二ABAC 2.如何实现菜单的创建&#xff1f;2.1 表结构2.2 前端实现2.3 后端实现 3. 如何实现角色的创建&#xff1f;4.如何给用户分配权限 —— 将菜单赋予角色&#xff1f;5.如何给用户分配权限…

sqlilabs第五十三五十四关

Less-51(GET - GET - Error based - ORDER BY CLAUSE-String- Stacked injection) 手工注入 单引号闭合&#xff0c;和上一关一样堆叠注入解决 自动注入 和上一关一样 Less-52(GET - challenge - Union- 10 queries allowed -Variation 1) 手工注入 这一关开始后面的可以看…

设计模式之备忘录模式【行为型模式】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档> 学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某…

QT上位机开发(函数运行时间分析)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 软件除了功能开发、debug之外&#xff0c;另外一个很重要的部分就是软件的优化和提高。这里面的优化&#xff0c;当然就是希望软件能够处理更多的数…

[Beego]1.Beego简介以及beego环境搭建,bee脚手架的使用,创建,运行项目

一.Beego介绍 Beego是一个开源的基于Golang的MVC框架&#xff0c;主要用于Golang Web开发,Beego可以用来快速开发API、Web、后端服务等各种应用。 Golang 的Web开发框架有很多,从 github star 数量来看Gin>Beego>lris>Echo>Revel>Buffalo 目前国内用的比较多的就…

在ubuntu平台上安装minecraft

一、获取minecraft启动器安装包 登陆minecraft官网Welcome to the Minecraft Official Site | Minecraft&#xff0c;使用已经购买minecraft的microsoft或者mojang账号登陆。 点击Download Launcher 对于ubuntu系统&#xff0c;使用点击debian版本 此后便会自动下载Minecraft.…

基于pyradiomics影像组学特征提取

基于pyradiomics影像组学特征提取 特征提取&#xff1a;1 pyradiomics的使用&#xff1a;1.1&#xff0c;在python环境下安装pyradiomics:1.2,设置特征提取器&#xff0c;获得想要特征&#xff1a;1.2.1 图像类型1.2.2 目标特征设置1.2.3 特征提取器设置 2 代码示例;参考&#…

关于提高IDEA运行速度的说明

1.作者IDEA软件版本和计算机内存 Ultimate 2022.1.2版 2.修改配置提高IDEA运行速度的误区 很多文章会教调内存&#xff0c;但大多是让你调高堆内存&#xff0c;-Xms -Xmx 是最小堆内存和最大堆内存。堆内存越高&#xff0c;说明堆区可放入新对象的数量越多&#xff0c;由于…

关闭免费版pycharm社区版双击shift时出现的搜索框

Pycharm 在双击 shift 的时候总是弹出搜索框&#xff0c;但作为中国玩家&#xff0c;经常需要双击 shift 循环切换中英文。这就很困恼。 下面就解决这个问题。单独关闭双击shift的功能。 步骤 1.左上角 File -> Settings 2. 如图&#xff0c;输入‘advan’ 找到高级设置&…

分享从零开始学习网络设备配置--任务4.4 使用动态路由OSPFv3实现网络连通

任务描述 由于RIPng不适用于复杂的网络&#xff0c;考虑到公司的未来发展&#xff0c;需要不断扩大网络规模。某公司在企业网络升级时&#xff0c;选择 OSPFv3路由协议实现网络连通&#xff0c;降低网络拓扑变化引发的人工维护工作量并加快网络收敛的速度。 公司内部的所有设…

Leetcode26——引出c++ vector中erase()的内部原理

erase是对数组中某个元素进行删除的操作&#xff0c;实际的时间复杂度为O(n) 预备知识 数组在内存中是连续存储的&#xff0c;删除某个位置的时候不能直接删除&#xff0c;只能用后序的元素覆盖 以nums数组为例&#xff0c;target为需要删除的目标数据 方法&#xff1a; ①…