Jquery常用操作汇总,dom操作,ajax请求

简介: 本文汇总了jQuery的一些常用操作,包括DOM元素的选择、添加、移除,表单操作,以及如何使用jQuery发送Ajax请求,涵盖了GET、POST请求和文件上传等常见场景。

这段时间在写一些小Demo,用的都是很远古的Jquery,哈哈哈,但是呢也挺好玩儿的。想着记录一下。

image.png

题外话:补充一些自己欠缺的前端知识,(我的前端学的比较乱,哈哈哈,原生的js不是很熟,)

题外话—dom操作导致事件绑定失效?

场景复现:循环遍历了一个table表格,及其操作按钮,当我们重新渲染表格时,表格中的操作按钮会失效,无法点击。大家的写法可能如下(一个经典错误):

$('#editBn').on('click',function(){
    // 业务逻辑
})

使用事件委托,将对应的事件委托给父级元素即可。

$('.container').on('click','.btn',function(){
   
    // 业务逻辑
})

题外话—JS 操纵 JSON

  • JSON.parse() 将JSON字符串转换JavaScript对象
  • JSON.stringify() 将JavaScript值转换为JSON字符串

一、jQuery常用操作

(一)元素选择

这里的话,最常用的就是类选择器和id选择器,和CSS选择器基本一致,不做过多赘述

let Mybtn = $(".my-button")
let MyBox = $("#mybox")

(二)添加元素

1. append()

将一个或多个元素添加到每个匹配元素的子元素列表的末尾。

$('#parent').append('<div class="newElement">New Element</div>');
2. prepend()

将一个或多个元素添加到每个匹配元素的子元素列表的开头。

$('#parent').prepend('<div class="newElement">New Element</div>');
3. before()

在每个匹配元素之前插入内容。

$('#target').before('<div class="newElement">Before Target</div>');
4. after()

在每个匹配元素之后插入内容。

$('#target').after('<div class="newElement">After Target</div>');
5. html()

替换每个匹配元素的HTML内容。

$('#target').html('<div class="newElement">Replace Content</div>');
6. clone()

克隆一个或一组元素,并可选择包含其事件处理程序。

var clonedElement = $('#elementToClone').clone(true).appendTo('#parent');

(三)移除元素

1. remove()

从DOM中删除每个匹配的元素。

$('#elementToRemove').remove();
2. empty()

删除所有子节点,但保留匹配的元素本身。

$('#parent').empty();
3. detach()

从DOM中删除每个匹配的元素,同时保持所有jQuery数据和事件处理程序。

$('#elementToDetach').detach();

(四)form表单

1. input 输入框的内容获取
// 很简单,凡是input控件,基本都可以通过.val() 去获取输入框的值
<input  type="text" id="ipt1"/>
let ipt1V = $("#ipt1").val()
2. input 输入框的双向数据绑定

其实就是change事件触发的同时去修改绑定值啦

<input  type="text" id="ipt2"/>
<p id="ipt2Text"></p>


$("ipt2").on("change",function(){
   
  // 除了form控件之外的其他元素的内容,基本都可以通过.text()去改变元素内容
  $("ipt2Text").text($("#ipt2").val())
})
3. 判断 单选radio 哪一项被选中
<form>  
  <input type="radio" name="group1" value="option1"> Option 1<br>  
  <input type="radio" name="group1" value="option2" checked> Option 2<br>  
  <input type="radio" name="group1" value="option3"> Option 3  
</form>


// 检查是否有radio被选中  
if($('input[name="group1"]:checked').length > 0) {  
  // 获取被选中的radio的值  
  var selectedValue = $('input[name="group1"]:checked').val();  
  // 显示被选中的值  
  alert("Selected Value: " + selectedValue);  
} else {  
  // 如果没有radio被选中  
  alert("没有radio被选中.");  
}
4. 获取下拉框的值
$('#test option:selected').val();
5. input 控件动态添加readonly,disabled,checked 等属性

两种方法,更推荐.prop

  • .attr()$('element').attr(key,value)
  • .prop()$('element').prop('xxxx',true|false)

在大多数情况下,使用prop()方法而不是attr()方法来设置或获取布尔属性(如readonlydisabledchecked等),因为prop()方法能更准确地反映DOM属性的实际状态。

// 设置复选框或单选按钮为选中状态
$('#myCheckbox').attr('checked', 'checked');

// 或者使用 prop() 方法
$('#myCheckbox').prop('checked', true);
// 移除 checked 属性,即取消选中状态
$('#myCheckbox').removeAttr('checked');

// 或者使用 prop() 方法
$('#myCheckbox').prop('checked', false);
6. input file 文件上传,获取上传的文件内容,多文件上传
 $("#formFile").on("change", function () {
     var files = $(this).prop('files');
     var data = new FormData();
     data.append('file', files[0]);
 }
7. input file 改用按钮点击触发文件上传
将input file 隐藏掉 display:none ,然后点击按钮时,触发file的点击事件
文件上传在file input的click中实现

二、Jquery 操控 Ajax

(一)GET请求
$.ajax({
   
  url: 'http://example.com/data',
  type: 'GET',
  success: function(response) {
   
    console.log(response);
  },
  error: function(error) {
   
    console.error(error);
  }
});
(二)POST请求
$.ajax({
   
  url: 'http://example.com/submit',
  type: 'POST',
  data: {
    key: 'value' }, // 或者使用 $('#formId').serialize()
  success: function(response) {
   
    console.log(response);
  },
  error: function(error) {
   
    console.error(error);
  }
});
(三)文件上传

文件上传通常需要使用FormData对象,并且通常涉及到POST请求。

var form = $('#fileUploadForm')[0];
var formData = new FormData(form);

$.ajax({
   
    url: 'http://example.com/upload',
    type: 'POST',
    data: formData,
    processData: false, // 不要处理数据
    contentType: false, // 不要设置内容类型
    success: function(response) {
   
        console.log(response);
    },
    error: function(error) {
   
        console.error(error);
    }
});
(四)发送一个json请求
var data = {
    key: "value" }; // 这是你的 JSON 数据

$.ajax({
   
    url: 'http://example.com/api/endpoint',
    type: 'POST',
    data: JSON.stringify(data), // 将 JavaScript 对象转换为 JSON 字符串
    contentType: 'application/json; charset=utf-8', // 告诉服务器你发送的是 JSON 数据
    dataType: 'json', // 告诉 jQuery 期望从服务器接收 JSON 数据
    success: function(response) {
   
        console.log(response); // 处理服务器返回的 JSON 数据
    },
    error: function(error) {
   
        console.error(error); // 处理错误情况
    }
});
相关文章
|
10天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
7天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2513 16
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
7天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1520 14
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
3天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
9天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
545 14
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19282 30
|
9天前
|
人工智能 自动驾驶 机器人
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
过去22个月,AI发展速度超过任何历史时期,但我们依然还处于AGI变革的早期。生成式AI最大的想象力,绝不是在手机屏幕上做一两个新的超级app,而是接管数字世界,改变物理世界。
464 48
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18838 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17527 13
Apache Paimon V0.9最新进展
|
1天前
|
云安全 存储 运维
叮咚!您有一份六大必做安全操作清单,请查收
云安全态势管理(CSPM)开启免费试用
360 4
叮咚!您有一份六大必做安全操作清单,请查收