当前位置: 首页 > news >正文

(3)选择元素——(14)接触DOM元素(Accessing DOM elements)

Every selector expression and most jQuery methods return a jQuery object. Thisis almost always what we want, because of the implicit iteration and chaining capabilities that it affords.

每一个选择器表达式和大部分的jquery方法返回了一个jquery对象。至几乎总是我们想要的,因为它提供了隐式迭代和链锁所用。

Still, there may be points in our code when we need to access a DOM elementdirectly. For example, we may need to make a resulting set of elements available toanother JavaScript library. Additionally, we might need to access an element's tagname, which is available as a propertyof the DOM element. For these admittedlyrare situations, jQuery provides the .get()method. To access the first DOM elementreferred to by a jQuery object, we would use .get(0). If the DOM element is neededwithin a loop, then we would use .get(index). So, if we want to know the tag nameof an element with id="my-element", we would write the following code snippet:

var myTag = $('#my-element').get(0).tagName;

然而在我们的代码中还有有一些地方我们想要接触到DOM元素。比如,我们可能想让一系列元素可以让其他的js库使用。另外,我们可能需要接触到一个元素的名字,使用DOM元素的属性可以做到这一点。对这些公认很少出现的场景,jquery提供了.get()方法可以由jquery对象引用。我们将使用.get(0)。如果DOM元素是在一个循环中被需要的,我们将使用.get(index)。
因此,如果我们想要知道id是my-element的元素的名字,我们将使用下面的代码片段:
var myTag=$("#my-element").get(0).tagName;

For even greater convenience, jQuery provides a shorthand for .get(). Instead of writing the preceding line, we can use square brackets immediately followingthe selector:

var myTag = $('#my-element')[0].tagName;

为了更好的便利性,jquery为get()提供了一个快捷方式。我们可以在选择器后面使用中括号,而不用写之前的代码:

var myTag = $('#my-element')[0].tagName;

It's no accident that this syntax appears to treat the jQuery object as an array of DOMelements; using the square brackets is like peeling away the jQuery wrapper to get atthe node list, and including the index(in this case, 0) is like plucking out the DOMelement itself.

毫无意外,这个语法看起来想是我们把jquery对象当成DOM元素数组来看待,使用方括号好像是去到了jquery对象的外包装,然后得到了dom元素列表,包括index(在这里是0),好像是把DOM元素自己扯了出来。

相关文章:

  • 单元测试Struts2Spring项目的Action和Service(包含源码)
  • 【Android病毒分析报告】 - KorBankDemon “吸金幽灵”打劫银行
  • CSS3之变换Transform
  • 读书笔记-编写可读代码的艺术[上]
  • 读书笔记-编写可读代码的艺术[中]
  • 读书笔记-编写可读代码的艺术[下]
  • C语言的静态函数
  • Python 入门教程 11 ---- Lists and Functions
  • HDU 4764 Stone (简单博弈) 2013 ACM/ICPC 长春网络赛
  • HDU 4762 Cut the Cake (数学概率) 2013 ACM/ICPC 长春网络赛
  • 为什么高维空间中的任给两个向量几乎都正交?
  • oracle commit 做了什么?
  • android下对存储的操作
  • android开发之滑动效果实现图片浏览_ViewFilpper的使用
  • Python 入门教程 12 ---- Battleship!
  • 「面试题」如何实现一个圣杯布局?
  • 【mysql】环境安装、服务启动、密码设置
  • 【刷算法】求1+2+3+...+n
  • Android交互
  • C++类中的特殊成员函数
  • CentOS7 安装JDK
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Web Storage相关
  • 半理解系列--Promise的进化史
  • 对超线程几个不同角度的解释
  • 关于Java中分层中遇到的一些问题
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 聊聊flink的TableFactory
  • puppet连载22:define用法
  • !!java web学习笔记(一到五)
  • #NOIP 2014# day.2 T2 寻找道路
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (23)Linux的软硬连接
  • (pytorch进阶之路)扩散概率模型
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二)springcloud实战之config配置中心
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (算法)N皇后问题
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)c++ std::pair 与 std::make
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)nsfocus-绿盟科技笔试题目
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .Net 应用中使用dot trace进行性能诊断
  • .net专家(张羿专栏)
  • @Bean注解详解
  • @SuppressWarnings(unchecked)代码的作用
  • [ Linux ] Linux信号概述 信号的产生
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [20190113]四校联考
  • [Android]竖直滑动选择器WheelView的实现
  • [ARC066F]Contest with Drinks Hard