Jquery根据id获取属性的一个奇怪问题

本文探讨了在使用jQuery时遇到的问题,即当HTML元素的ID包含特殊字符(如点号)时,如何正确地选取这些元素。文中通过对比jQuery与原生JavaScript的表现,揭示了这一现象的原因,并提供了相应的解决办法。

    我们都知道html代码需要规范,但有时一些页面不是我们所能控制的,比如SharePoint的一些页面,其中不少页面的id属性的值包含点号等特殊字符,当我在使用Jquery时发现一些奇怪的现象。

    有如下html代码,其中id的值包含点号。

<input type="text" value="111" id="user1.name_a">
    当我们使用如下Jquery语句去获得这个元素对象时,无法获得这个元素对象,返回值是空数组[]。

$("#user1.name_a")
    这个时候要想获得这个元素对象我们可以通过原生的JavaScript去获得:

document.getElementById("user1.name_a");
    现将两种的截图粘贴出来,看来我们使用各种JavaScript框架时,原生的代码还是有必要了解的。





<%@ page import="util.DbConnet" %> <%@ page import="java.sql.ResultSet" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <% //功能:通过编号获取用户要编辑的具体数据 //1.接收传过来的编号 String id = request.getParameter("appliance_id"); //通过编号执行查询 String sql = "select * from `living_room_appliances` where `appliance_id`=?;"; Object[] params = new Object[]{ id }; ResultSet rs = DbConnet.select(sql, params);//真正执行查询,得查询结果的数据集 //验证查询结果是否有数据(处理的是无数据情况) if(!rs.next()) response.sendRedirect("list.jsp"); %> <html> <head> <title>编辑用户</title> <link rel="stylesheet" href="../css/common.css"> <link rel="stylesheet" href="../css/add.css"> </head> <body> <%--编辑: 1.点击编辑按钮,打开一个页面 2.新编辑页面需要包含: (1)表单 (2)输入框:账号、密码、确认密码、姓名 (3)按钮:保存(提交)、重置、返回 3.功能: 保存(提交):无刷新提交表单中的所有数据 重置:还原表单中的内容为初始状态 返回:重新打开列表页面(list.jsp) --%> <header> <div class="title">编辑用户</div> </header> <div class="main"> <form id="editForm"> <input type="hidden" name="appliance_id" value="<%=id%>"> <div class="form-item"> <label for="appliance_id">账号:</label> <%-- disabled:禁用元素(数据不传输) readonly:只读(不能编辑,可以传输) --%> <input disabled value="<%=rs.getString("appliance_id")%>" id="appliance_id" name="appliance_id" type="text"> </div> <div class="form-item"> <label for="appliance_type">密码:</label> <input value="<%=rs.getString("appliance_type")%>" id="appliance_type" name="appliance_type" type="text"> </div> <div class="form-item"> <label for="appliance_name">确认密码:</label> <input value="<%=rs.getString("appliance_name")%>" id="appliance_name" name="appliance_name" type="text"> </div> <div class="form-item"> <button class="primary" id="btnSubmit" type="button">保存</button> <button type="reset">重置</button> <button id="btnBack" type="button">返回</button> </div> </form> </div> <script src="../js/jquery-3.5.1.min.js"></script> <script src="../js/common.js"></script> <script> //绑定保存按钮的点击事件 $('#btnSubmit').on('click', function () { //1.验证不能为空:账号、密码、姓名 if(!checkInputIsNull('#appliance_type','账号')) return false; if(!checkInputIsNull('#password','密码')) return false; //比较两次输入的密码是否一致 let cmfPswObj = $('#cmfPsw'); if($('#password').val() !== cmfPswObj.val()){ alert("两次输入的密码不一致");//提示 cmfPswObj.val('').focus();//清空确认密码的内容,并设置确认密码输入框得焦点 return false;//停止往下执行 } if(!checkInputIsNull('#appliance_name','姓名')) return false; //2.无刷新提交数据 postAction("/living/edit", $('#editForm').serialize(),function (res) { //1.弹出提示信息 alert(res.msg); //2.成功后返回列表页面(list.jsp) if(res.result) window.location.href = res.url; }); }); //绑定返回按钮的点击事件 $('#btnBack').on('click', function () { if(confirm("确定要返回吗?")){ window.location.href='list.jsp'; } }); </script> </body> </html> 帮我修改这串代码中的错误
最新发布
07-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值