Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查jQuery中是否存在元素_Javascript_Jquery - Fatal编程技术网

Javascript 检查jQuery中是否存在元素

Javascript 检查jQuery中是否存在元素,javascript,jquery,Javascript,Jquery,如果元素是通过.append()方法创建的,如何检查该元素是否存在? $('elemId')。长度对我来说不合适 $('elemId')。长度不适用于 我 您需要将#放在元素id之前: $('#elemId').length ---^ 使用vanilla JavaScript,您不需要散列(),例如document.getElementById('id_here'),但是在使用jQuery时,您确实需要像CSS一样基于id将散列放入目标元素。尝试检查选择器的长度,如果它返回了一些东西,那么元

如果元素是通过
.append()
方法创建的,如何检查该元素是否存在?
$('elemId')。长度对我来说不合适

$('elemId')。长度不适用于
我

您需要将
#
放在元素id之前:

$('#elemId').length
---^


使用vanilla JavaScript,您不需要散列(
),例如
document.getElementById('id_here')
,但是在使用jQuery时,您确实需要像CSS一样基于
id
将散列放入目标元素。

尝试检查选择器的长度,如果它返回了一些东西,那么元素必须存在,否则就不存在

 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
}

如果元素上有类,则可以尝试以下操作:

if( $('.exists_content').hasClass('exists_content') ){
 //element available
}
试试这个:

if ($("#mydiv").length > 0){
  // do something here
}

如果元素不存在,length属性将返回零。

您的
elemId
顾名思义,是一个
Id
属性,您可以执行以下操作来检查它是否存在:

香草JavaScript:如果您有更高级的选择器:

//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:

if(jQuery("#elemId").length){}

您可以使用本机JS测试对象是否存在:

if (document.getElementById('elemId') instanceof Object){
    // do something here
}
别忘了,jQuery只不过是一个围绕本机Javascript命令和属性的复杂(而且非常有用)包装器

如何检查元素是否存在

如果它是
0
,它的计算结果将是
false
,而不是
true


没有必要进行大于或小于的比较

您还可以使用类似数组的表示法并检查第一个元素。 空数组或集合的第一个元素只是
未定义
,因此您会得到“正常”的javascript truthy/falsy行为:

var el = $('body')[0];
if (el) {
    console.log('element found', el);
}
if (!el) {
    console.log('no element found');
}


.length
工作正常,请参见此处:如果您确实使用了
发布您的代码,我们将看到您做错了什么。使用$('.'选择器').length和$('.selector').length作为id和类选择器$(“#选择器选项”).size()检查下拉菜单size.CSS选择器,因此“#elementId”按元素选择。“elementId”实际上会选择所有标记名为“elementId”的emenets@trejder海报很可能不知道Vanilla JS,当他们说“Vanilla JavaScript”时,他们实际上是指基础JavaScript(“Vanilla”在“plain”、“unadarned”中的意思)。@trejder看起来像是“Vanilla JS”与基础JavaScript完全相同(下载的文件总是空的)-有人刚刚决定推销基本Javascript。是的,该网站在嘲笑对名为“Vanilla JS”的框架的需求,该框架只不过是Javascript本身。@trejder应该仔细阅读一下。你“不需要哈希”“仅当您使用了错误的函数时。
document.querySelector('id_here')
需要的哈希符号与jQuery等价的
$('id_here')一样多。”
。我发现这种方法非常不直观。这几乎就像询问如何确定一个数字是否为负数,然后有人告诉您需要在汇编中编写代码,然后手动旋转CPU寄存器中的一些位,而不是简单地调用.isNegative()之类的方法.检查'length'属性的值会使事情变得混乱。我更希望看到类似于.exists()的内容方法,在扫描代码时可以立即识别。在某些方面,jquery在使javascript更易访问方面取得了长足的进步,但还远远没有成为习惯用法。此解决方案非常直观。length属性告诉您有多少元素与查询匹配。这有什么不直观或不直接的?您可以编写一个更直观的函数:
函数exists(elementName){return$(elementName).length;}
这会在控制台中引发异常。
jquery.min.js:2 jquery.延迟异常:无法读取未定义类型的属性“length”错误:无法读取未定义类型的属性“length”这对我不起作用。我使用的浏览器是firefox 32.02。请随意粘贴您的代码段谢谢,不再有问题。我已将其替换为此代码段如果元素不存在,你如何检查类。哇,没有看到答案。这个答案应该得到一个金徽章,因为它是最有趣的答案,所以:)你不需要
!=null
因为
querySelector
将始终返回
null
(这是错误的),或者一个元素如果(document.querySelector(“elemId”)!=null)
,我仍然会使用
readability@Mrinmoy你的心态要么来自Java,要么来自C。在JavaScript中,我们知道我们有七个falsy值(0,-0,null,undefined',NaN和false),如果(document.querySelector(“elemId”)!=null)考虑到这些falsy值
if(document.querySelector(“elemId”)!=null)
对编写更可读的代码没有影响。在JavaScript世界中,强烈建议您了解JavaScript社区的约定,而不是让您的思维方式远离Java或C等结构化编程语言。对于此特定情况下的JavaScript开发人员
!=null
是完全冗余的,可读性差得多。@MehranHatami,因此您同意代码只能由javaScripter读取,但如果
querySelector()
返回
null或0
或其他5个值中的任何一个,他仍会感到困惑
querySelectorAll()
和jQuery在未找到元素时具有不同的返回值。请考虑一下,现在的人们在技术和框架上使用多才多艺的语言,所以让事情变得更易读肯定会受益匪浅。顺便说一句,我更像是一个javascripter,而不是java/golangprogrammer@Mrinmoy我同意这是一个有争议的话题,但我所说的不是我的观点,而是事实。在我的团队中,如果我看到有`!=空`我不赞成。虽然这是一种惯例,但它已经成为一种规则,某种程度上。对我来说,最重要的是确保我的团队中的开发人员了解基础知识,并且他们的代码是一致的,没有冗余空`对我来说就像`!=fa
var el = $('body')[0];
if (el) {
    console.log('element found', el);
}
if (!el) {
    console.log('no element found');
}