jquery中的$("#***")和javascript中document.getElementById

本文探讨了JavaScript原生对象与jQuery对象的区别,包括它们的功能特性与应用场景。阐述了如何在两者间进行转换,以及在实际项目中,如页面元素操作与事件处理时的选择与注意事项。

 

百度答案:

$得到的是一个jquery的对象,里边除了使用document.getElementById获取的dom对象之外,还有事件处理对象,各种属性值和方法等等一大堆东西。
getElementById得到的仅仅是那个dom对象而已

一个是js对象,一个是jQuery对象
可互相转换:
var jsObj = $("#xx")[0];
jsObj = $("#xx").get(0);
var jsObj1 = document.getElementById("xx");
var $jqueryObj = $(jsObj);

实践:

背景介绍:页面用layui 后台页面时,需要点击一个按钮,然后改变<a>标签的href 属性值,然后使的<a>

标签点击

问题发现:当在后面用$("#ss").cilck() 点击的时候,页面<a> 标签不能实现点击

                 换成document.getElementById("ss").onclick();  时可以使标签<a> 实现点击效果

问题解析:

onclick其实跟click不同,onclick触发的是方法,而click触发是按钮点击事件,然后触发方法

如果该对象没有事件onclick则无法被触发,而click却可以触发但是因为$("#ss")获取的是jquery的对象却反倒影响到了click事件,而用document.getElementById("ss")没有影响

 

转载于:https://www.cnblogs.com/jsbk/p/9604544.html

<think>嗯,用户问的是jQuery中的$(.)$(#)的区别。首先,我需要确认用户指的是选择器,因为jQuery$()是用来选择元素的,而通常选择器会使用类似CSS的语法。可能用户打错了符号,比如把点.井号#写在了括号里,比如$(&#39;.&#39;)$(&#39;#&#39;),或者可能用户想表达的是$(&#39;.class&#39;)$(&#39;#id&#39;)的区别。 首先,我应该回忆一下jQuery的基本选择器。jQuery通过$()函数来选取元素,其中传入字符串参数,比如$(&#39;#id&#39;)选择ID,$(&#39;.class&#39;)选择类。用户提到的$(.)可能是指$(&#39;.classname&#39;),而$(#)$(&#39;#idname&#39;)。不过用户写成了$(.)$(#),这可能是个笔误,需要指出正确的语法。 接下来,我需要详细解释这两种选择器的不同用途。ID选择器#用于选取具有特定ID的元素,而类选择器.用于选取具有特定类的元素。同时,ID在页面中应该是唯一的,而类可以被多个元素共享。这点很重要,因为如果用户错误地使用ID选择器来选取多个元素,可能会遇到问题。 另外,还需要提到这两种选择器的性能差异。因为ID是唯一的,使用#id选择器时,jQuery可以直接调用document.getElementById(),效率更高。而类选择器可能需要遍历更多元素,尤其是在旧版浏览器中,性能可能稍低。这对于优化代码可能有帮助。 用户可能是在学习jQuery选择器时遇到了混淆,或者在实际使用中出现了问题,比如无法正确选取元素。需要确保他们理解正确的语法,并了解何时使用哪种选择器。此外,可能还需要提醒其他注意事项,比如动态添加元素时的处理,或者选择器中的特殊字符需要转义的情况。 还有可能用户看到了一些代码中的写法,比如$(this).find(&#39;.class&#39;)或者$(&#39;#id .class&#39;)这样的组合使用,这时候需要解释上下文中的不同应用场景。比如,组合选择器的使用,或者链式操作中的选择器应用。 最后,总结两者的区别,并给出使用建议,帮助用户避免常见错误,比如重复ID或者误用类选择器导致选取不到元素。同时,可以举一些简单的例子,让用户更直观地理解两者的不同用法。</think>在jQuery中,`$(.)``$(#)`的区别实际上是 **选择器语法不同**,分别对应 **类选择器** **ID选择器**。以下是逐步解释: --- ### 1. **语法与用途** - **`$("#id")`(ID选择器)** - **语法**: `$("#元素ID")` - **作用**: 选择具有特定`id`属性的唯一元素。 - **示例**: ```javascript $("#header") // 选取页面中 id="header" 的元素 ``` - **特点**: - `id`在HTML文档中应是唯一的。 - 直接调用底层`document.getElementById()`,性能高。 - **`$(".class")`(类选择器)** - **语法**: `$(".类名")` - **作用**: 选择所有具有指定`class`属性的元素。 - **示例**: ```javascript $(".btn") // 选取页面中所有 class="btn" 的元素 ``` - **特点**: - `class`可重复用于多个元素。 - 需要遍历文档,性能略低于ID选择器。 --- ### 2. **核心区别总结** | 特性 | `$("#id")` | `$(".class")` | |---------------------|---------------------------|---------------------------| | **选择目标** | 唯一元素 | 多个元素 | | **HTML属性** | `id`属性 | `class`属性 | | **返回值类型** | 单个jQuery对象 | 集合型jQuery对象(可能包含多个元素) | | **性能** | 高(直接定位) | 中低(需遍历) | --- ### 3. **使用场景** - **`$("#id")`适用场景** - 操作页面中唯一的元素(如页眉、页脚)。 - 需要快速定位元素时(如表单提交按钮)。 - **`$(".class")`适用场景** - 批量操作一组元素(如统一修改样式)。 - 动态生成的重复元素(如列表项)。 --- ### 4. **注意事项** 1. **避免重复ID** HTML中多个元素使用相同`id`会导致`$("#id")`仅返回第一个匹配项,且可能引发其他问题。 2. **转义特殊字符** 若`id`或`class`包含特殊符号(如`.`或`#`),需用反斜杠转义: ```javascript $("#user\\.name") // 匹配 id="user.name" 的元素 ``` 3. **组合使用** 可组合选择器以提高精度: ```javascript $("div#main") // 选择 id="main" 的 div $("input.active") // 选择 class="active" 的 input 元素 ``` --- ### 5. **扩展:其他选择器** - **元素选择器**:`$("div")` - **属性选择器**:`$("[type=&#39;text&#39;]")` - **层级选择器**:`$("ul > li")` 通过理解`#``.`的区别,可以更高效地操作DOM元素。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值