热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何检查JQuery中是否存在元素?-HowdoIcheckanelementisexistsinJQuery?

Ihavetosetaspecificvaluetoanelementiftheelementisexists.如果元素存在,我必须为元素设置特定值。vara

I have to set a specific value to an element if the element is exists.

如果元素存在,我必须为元素设置特定值。

var a = jQuery("#abc");
if(a) {
   a.val("something");
}

For this, I've to check a.length to check the element is exits.

为此,我要检查a.length以检查元素是否退出。

What happen if I directly set the value without checking the element is present or not?

如果我直接设置值而不检查元素是否存在会发生什么?

Because, If I do the following

因为,如果我这样做

jQuery("#abc").val("dfd");

I don't get any error in chrome when the element is not present. So, can I continue to use like this?

当元素不存在时,我没有在chrome中出现任何错误。那么,我可以继续这样使用吗?

or

any workaround?

Help appreciated!

4 个解决方案

#1


2  

What happen if I directly set the value without checking the element is present or not?

如果我直接设置值而不检查元素是否存在会发生什么?

Nothing. Calling jQuery methods on an empty jQuery object (set) doesn't cause a problem, it just does nothing. This is one of the great things about the set-based concept used in jQuery. The equivalent DOM code (document.getElementById("abc").value = "something";) would throw an error, but the jQuery version doesn't.

没有。在空的jQuery对象(set)上调用jQuery方法不会导致问题,它什么都不做。这是jQuery中使用的基于集合的概念的优点之一。等效的DOM代码(document.getElementById(“abc”)。value =“something”;)会抛出错误,但jQuery版本却没有。

Specifically, if the jQuery set is empty:

具体来说,如果jQuery集为空:

  • Calling setter methods (like your val call) becomes a no-op.

    调用setter方法(比如你的val调用)就变成了无操作。

  • Calling getter methods — for instance, var x = $("#foo").val(); — returns the value undefined.

    调用getter方法 - 例如,var x = $(“#foo”)。val(); - 返回未定义的值。

  • Calling traversal methods — for instance, var divs = $("#foo).find("div"); — gives you a new empty set.

    调用遍历方法 - 例如,var divs = $(“#foo).find(”div“); - 为您提供一个新的空集。

You only need to check (using if (a.length) as you said, or if (a[0])) if you actually care.

你只需要检查(如你所说的那样使用if(a.length),或者如果你真正关心的话,是否(a [0]))。

jQuery("#abc").val("dfd");

I don't get any error in chrome when the element is not present. So, can I continue to use like this?

当元素不存在时,我没有在chrome中出现任何错误。那么,我可以继续这样使用吗?

Yup.

#2


0  

jQuery's val() method simply sets (or gets) the value of each matching element. If there are no matching element, there will be no value to set (or get). You don't need to check if the element exists first.

jQuery的val()方法只是设置(或获取)每个匹配元素的值。如果没有匹配元素,则没有设置(或获取)的值。您无需先检查元素是否存在。

From jQuery's val() documentation:

从jQuery的val()文档:

Description: Set the value of each element in the set of matched elements.

描述:设置匹配元素集中每个元素的值。

If there are no matched elements, nothing will happen.

如果没有匹配的元素,则不会发生任何事情。

#3


0  

Try with -

尝试 -

jQuery("#abc").length > 0

#4


0  

Yes, you can safely continue. JQuery just executes a function on all elements found by the selector - if there are none, it does nothing. There's no error.

是的,你可以安全地继续。 JQuery只对选择器找到的所有元素执行一个函数 - 如果没有,它什么都不做。没有错误。


推荐阅读
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文由编程笔记小编整理,主要介绍了使用Junit和黄瓜进行自动化测试中步骤缺失的问题。文章首先介绍了使用cucumber和Junit创建Runner类的代码,然后详细说明了黄瓜功能中的步骤和Steps类的实现。本文对于需要使用Junit和黄瓜进行自动化测试的开发者具有一定的参考价值。摘要长度:187字。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
author-avatar
-1的人生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有