Check if element exists in jQuery
如果元素是由.append()方法创建的,如何检查元素是否存在?$('elemId').length不适合我。
- .length工作得很好,请参见:jsfiddle.net/yahavbr/a9zw2如果您确实使用了#发布了您的代码,我们将看到您做错了什么。
- 使用$('selector').length和$('.selector').length作为ID和类选择器。$('selector option').size()检查下拉列表的大小。
$('elemId').length doesn't work for
me.
您需要将#放在元素id之前:
1 2
| $('#elemId').length
---^ |
对于普通的javascript,您不需要散列(#)例如document.getElementById('id_here'),但是在使用jquery时,您需要像css一样将散列放到基于id的目标元素上。
- 因此使用CSS选择器"elementid"按元素选择。"elementid"将实际选择其标记名为"elementid"的所有eMets
- @Trejder很可能是因为海报没有意识到普通的JS,当他们说"普通的javascript"时,实际上他们是指基本的javascript("普通的"和"普通的"一样)。
- @Trejder看起来像"普通的JS"和基本的javascript完全一样(下载的文件总是空的),有人决定为基本的javascript做一个销售宣传。
- 是的,那个网站在嘲弄对一个称为"普通JS"的框架的需求,这个框架只不过是JavaScript本身。@Trejder应该读得更仔细一点。
- 只有在使用错误的函数时才"不需要散列"。document.querySelector('#id_here')要求散列符号与jquery等价的$('#id_here')一样多。
- 为什么不使用"$('elemid')==null"?
- 我真的不喜欢这个答案,因为它不能直接回答问题。
尝试检查选择器的长度,如果它返回某些内容,则元素必须存在,否则不存在。
1 2 3 4 5 6 7 8 9 10
| if( $('#selector').length ) // use this if you are using id to check
{
// it exists
}
if( $('.selector').length ) // use this if you are using class to check
{
// it exists
} |
- 我觉得这种方法太不具有说服力了。这几乎就像是询问如何确定一个数字是否为负数,然后有人告诉您需要在程序集中编写代码,然后手动在CPU寄存器中旋转一些位,而不是简单地调用像.isNegative()这样的方法。检查"长度"属性的值会使事情变得混乱。我宁愿看到类似于.exists()方法的东西,它在扫描代码时可以立即识别。
- 在某些方面,jquery为使javascript更易于访问而取得了飞跃,但它还远远没有成为惯用的。
- 这个解决方案非常直观。length属性告诉您有多少元素与查询匹配。有什么不直观或不直接的?
- 你可以写一个更直观的函数:function exists(elementName) { return $(elementName).length; }。
试试这个:
1 2 3
| if ($("#mydiv").length > 0){
// do something here
} |
如果元素不存在,则长度属性将返回零。
- 不需要大于0,如果为0,则计算为假。
- 如果不包括> 0,我就不能让它工作。你知道为什么会这样吗?
How do I check if an element exists
1
| if ($("#mydiv").length){ } |
如果是0,它将对false进行评估,而不是对true进行评估。
没有必要进行大于、小于比较。
- 这不是为我工作。Firefox浏览器使用is 32.02%。
- 你觉得自由粘贴片段
- 谢谢,没问题了。我有一个stackoverflow.com replace with this / / / / 2232458 21801090
您的EDOCX1[4]顾名思义,是EDOCX1[3]属性,您可以通过以下方法检查它是否存在:
香草javascript:如果您有更高级的选择器:
1 2 3 4 5 6 7
| //you can use it for more advanced selectors
if(document.querySelectorAll("#elemId").length){}
if(document.querySelector("#elemId")){}
//you can use it if your selector has only an Id attribute
if(document.getElementById("elemId")){} |
jQuery:
1
| if(jQuery("#elemId").length){} |
- 你不需要!= null,因为querySelector总是返回null(这是假的)或元素
- 我仍然会使用if (document.querySelector("elemId") != null )来提高代码的可读性。
- Mrinmoy,你的思维方式要么来自爪哇,要么来自C。在javascript中,我们知道有七个错误值(0、-0、空、未定义、NaN和假),考虑到这些错误值,if (document.querySelector("elemId") != null )对编写更可读的代码没有任何影响。在JavaScript世界中,不要用Java或C语言等结构化编程语言来保持思维方式,强烈建议了解JavaScript社区的约定。对于一个javascript开发人员来说,在这种特定的情况下,!= null是完全冗余的,可读性要差得多。
- @Mehranhatami,所以您同意代码只能由javascripter读取,但是如果querySelector()返回null or 0或其他5个值中的任何一个,他仍然会感到困惑。当找不到元素时,querySelectorAll() 和jquery的返回值不同。请考虑一下,人们这些天都在研究技术和框架的多语种,因此使事物更具可读性肯定会有好处。顺便说一下,我比Java/Gangon程序员更像JavaScript
- @我同意这是一个有争议的话题,但我所说的并不是我的观点,而是事实。在我的团队中,如果我看到有`!=null`我不同意。虽然这是一种惯例,但它已经成为一种规则,某种程度上。对我来说,最重要的是确保团队中的开发人员了解基础知识,并且他们的代码是一致的,没有冗余。`!=null`对我来说就像`!=false`这是if语句的有效条件,但它本身是多余的。
- 当我们说"mrinmoy if (a){}JavaScript or is not exists aEN均值和零falsy is valid?比较EN with the only when你想验证值专门开发nullwhich is not to be the example这个房子。你是自由的,但都不会批准使用if any of My T / developers使用!for this kind of = null是在其"cases,which means会展has some effect or less读取黑莓在制作它。
- "我知道你mehranhatami转移过程寻找任何规则或!= null短绒which to any出名,你可以点我baked that have this condition短绒。如果你使用!== null什么木头?在JS型有严格检查,对恩告诉你会使用吗?there are that each函数返回null, 0 or undefined着欧洲和我在不同的if (a){ }reason for the cases我也`截止。加上其事好做developers to the功能在线完成RH比校正Rather离开them is to guess work out with which在falsy人物或不-他们是处理与falsy值
您还可以使用类似数组的表示法并检查第一个元素。空数组或集合的第一个元素只是undefined,因此您可以得到"正常"的javascript真实/错误行为:
1 2 3 4 5 6 7
| var el = $('body')[0];
if (el) {
console.log('element found', el);
}
if (!el) {
console.log('no element found');
} |
您可以使用本机JS来测试对象是否存在:
1 2 3
| if (document.getElementById('elemId') instanceof Object){
// do something here
} |
别忘了,jquery只不过是一个围绕本机javascript命令和属性的复杂(非常有用)包装器而已。
如果元素上有类,则可以尝试以下操作:
1 2 3
| if( $('.exists_content').hasClass('exists_content') ){
//element available
} |
- 如果元素不存在,如何检查类。
- 哇,没看到那个答案。