以前没注意过,认为jquery 中的 $("#") 与 document.getElementById("") 是一回事,指的是同一个东西。

这次项目开发在使用验证码生成的时候,发现两者不同,使用时需要注意!

通过以下测试:
js中代码

function reloadValidCode(o) {

alert(o);

o.src = "${pageContext.request.contextPath }/validCodeServlet?timed=" + new Date().getMilliseconds();

}

function refresh() {

alert($("#imageYZ"));

document.getElementById("imageYZ").src = "${pageContext.request.contextPath }/validCodeServlet?timed=" + new Date().getMilliseconds();

}

jsp中代码

<img src="${pageContext.request.contextPath }/validCodeServlet" id="imageYZ" alt="换一张" onclick="reloadValidCode(this)"/>

看不清?<a href="#this" onclick="refresh();"> 换一张</a>


我很打算在refresh()函数中使用

$("#imageYz").src = "${pageContext.request.contextPath }/validCodeServlet?timed=" + new Date().getMilliseconds(); 
进行设置,但是发现不行;原来alert(o)的结果是:

[object HTMLCanvasElement]

而alert($("#imageYZ"))的结果是:

[objec Object]
从这里不难看出两者真的不一样;

再用firebug调试看一下,
$("#imageYZ")和document.getElementById("imageYZ")倒底是什么内容。调试结果如下:

$("#imageYZ")                         [img#imageYZ]
    
document.getElementById("imageYZ")    img#imageYZ

想必,看到这里,不用我说,大家也会想到结果了。

实际上,$("#imageYZ")[0]等同于 document.getElementById("imageYZ")
 
 
 
看你这里用的是jquery , $(id) 得到的是jquery 对象,是一个对dom 进行包装的对象,html() 是jquery 对象的方法。
document.getElementById("errorPsd") 是dom 对象,可以看作javascript 自带的对象。

$("#errorPsd").htm(); 等效于 document.getElementById("errorPsd").innerHTML

$("#errorPsd").html("更改span内容"); 等效于 document.getElementById("errorPsd").innerHTML="更改span内容“;
更多内容你可以参考jquery 帮助文档

jquery 中的 $(“#”) 与 js中的document.getElementById(“”) 的区别的更多相关文章

  1. php中向前台js中传送一个二维数组

    在php中向前台js中传送一个二维数组,并在前台js接收获取其中值的全过程方法: (1),方法说明:现在后台将数组发送到前台 echo json_encode($result); 然后再在js页面中的 ...

  2. javascript中,一个js中的函数,第一句var _this = this;为什么要这样做?

    javascript中,一个js中的函数,第一句var _this = this;为什么要这样做? 下面是源码: 下面这段代码是常用的网站首页,自动切换span或者tabbar来变更List显示内容的 ...

  3. JQuery中width和JS中JS中关于clientWidth offsetWidth scrollWidth 等的含义

    JQuery中: width()方法用于获得元素宽度: innerWidth()方法用于获得包括内边界(padding)的元素宽度: outerWidth()方法用于获得包括内边界(padding)和 ...

  4. 如何将一个对象存到网页中并在js中使用

    需求:希望在js中使用Controller传过来的对象,特别是对象里存有list的数据. 不希望循环使用隐藏域. 解决办法:在View中使用Json.Net序列化: @{ string jsonStr ...

  5. 在vue项目中的main.js中直接使用element-ui中的Message 消息提示、MessageBox 弹框、Notification 通知

    需求来源:向后台请求数据时后台挂掉了,后台响应就出现错误,不做处理界面就卡住了,这时需要在main.js中使用axios的响应拦截器在出现相应错误是给出提示.项目使用element-ui,就调用里面的 ...

  6. jq中$(function(){})和js中window.onload区别

    先看下执行代码: $(function(){   console.log("jq");}) $(function(){   console.log("jq1") ...

  7. document.getElementById()与 $()区别

    document.getElementById()返回的是DOM对象,而$()返回的是jQuery对象 什么是jQuery对象? ---就是通过jQuery包装DOM对象后产生的对象.jQuery对象 ...

  8. document.write与document.getElementById的区别

    document.write改变的是整个HTML页面(文档),document.getElementById("demo").innerHTML= 改变的是局部属性

  9. jquery中read与js中onload区别

    在JavaScript中,onload函数是最经常使用的,几乎涉及到JavaScript的童鞋都少不了要接触它.这个函数的作用就是等待网页完全装载完了以后再去执行代码块内的语句,因为按照文档流的执行顺 ...

  10. jquery中data()和js中dataset属性的区别

    INTRO html的标签属性data-允许用户自定义属性.原生javascript和jquery分别定义了dataset属性和data()方法对标签中的data属性进行操作. 取值: 如我们定义这样 ...

随机推荐

  1. Merge Into 语法支持

    KINGBASE 兼容Oracle 语法,实现了merge into 的功能.以下以例子的形式,介绍merge into语法的使用.以下例子在V8R6 ,且 database_mode=oracle ...

  2. 【项目实战】Kaggle电影评论情感分析

    前言 这几天持续摆烂了几天,原因是我自己对于Kaggle电影评论情感分析的这个赛题敲出来的代码无论如何没办法运行,其中数据变换的维度我无法把握好,所以总是在函数中传错数据.今天痛定思痛,重新写了一遍代 ...

  3. Kubernetes容器运行时弃用Docker转型Containerd

    文章转载自:https://i4t.com/5435.html Kubernetes社区在2020年7月份发布的版本中已经开始了dockershim的移除计划,在1.20版本中将内置的dockersh ...

  4. K8S Pod Pending 故障原因及解决方案

    文章转载自:https://mp.weixin.qq.com/s/SBpnxLfMq4Ubsvg5WH89lA

  5. centos使用Yum安装postgresql 13

    rpm源安装 yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat ...

  6. LINUX 新增的磁盘不建立分区,直接建立文件系统并挂载

    假设新硬盘是 /dev/sdc fdisk操作的是/dev/sdc ,分区后才会有/dev/sdc1 /dev/sdc2 之类 一般mkfs.ext4 /dev/sdc1 来格式化一个分区,再moun ...

  7. 文档的CURD

    Index方式,需要指定ID 如果ID不存在,创建新的文档,状态是created 如果ID存在,会先删除现有ID的文档,然后创建一个新文档,ID数加1,状态是updated PUT test/_doc ...

  8. 使用Docker搭建Fluentd

    说明: 1.该镜像内默认配置文件路径是/fluentd/etc/fluent.conf 2.该镜像默认启用tcp的5140和24224端口 3.镜像dockerhub地址:https://hub.do ...

  9. (三)JPA - EntityManager的使用

    (二)JPA 连接工厂.主键生成策略.DDL自动更新 建议在需要使用时,看看之前的文章,先把环境搭起来. 4.EntityManager EntityManager 是完成持久化操作的核心对象. En ...

  10. Android EGL 实践

    本项目为 SurfaceView 和 TextureView 封装了 EGL 环境管理以及 Render 线程,可以和 GLSurfaceView 一样使用 OpenGLES 进行渲染.并尝试使用 O ...