如何在 jQuery 中检查 null 对象
我正在使用 jQuery,我想检查页面中是否存在某个元素。 我编写了以下代码,但它不起作用:
if($("#btext" + i) != null) {
//alert($("#btext" + i).text());
$("#btext" + i).text("Branch " + i);
}
How do I check the element of the element?
I'm using jQuery and I want to check the existence of an element in my page. I have written following code, but it's not working:
if($("#btext" + i) != null) {
//alert($("#btext" + i).text());
$("#btext" + i).text("Branch " + i);
}
How do I check the existence of the element?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(13)
检查 jQuery 常见问题解答...
您可以使用选择器返回的 jQuery 集合的 length 属性:
Check the jQuery FAQ...
You can use the length property of the jQuery collection returned by your selector:
(因为我似乎没有足够的声誉来否决答案......)
Wolf 写道:
虽然在未定义或 null 对象上调用 length 属性确实会导致浏览器失败,但 jQuery 选择器($('...'))的结果将永远 为空或未定义。 因此,代码建议没有任何意义。 使用其他答案之一,它们更有意义。
(2012 年更新)因为人们查看代码,这个答案在列表中非常靠前:在过去的几年里,我一直在使用这个小插件:
我认为 $('div').any()< /strong> 比 $('div').length 读起来更好,而且您不会因为拼写错误而受到太大影响:$('div').ayn()会给出运行时错误, $('div').lenght 很可能总是为假。
__
2012 年 11 月编辑:
1) 因为人们倾向于查看代码而不是阅读代码周围的内容,所以我在 Wolf 引用的代码中添加了两个重要的警告注释。
2)我添加了用于这种情况的小插件的代码。
(Since I don't seem to have enough reputation to vote down the answer...)
Wolf wrote:
While it is true that calling the length property on an undefined or null object will cause browsers to fail, the result of jQuery's selectors (the $('...')) will never be null or undefined. Thus the code suggestions make no sense. Use one of the other answers, they make more sense.
(Update 2012) Because people look at code and this answer is pretty high up the list: For the last couple of years, I have been using this small plugin:
I think $('div').any() reads better than $('div').length, plus you won't suffer as much from typos: $('div').ayn() will give a runtime error, $('div').lenght will silently most likely always be falsy.
__
Edits november 2012:
1) Because people tend to look at code and not read what is said around the code, I added two big caveat lector notes to the quoted code of Wolf.
2) I added code of the small plugin I use for this situation.
查找函数返回匹配元素的数组。 您可以检查长度是否为零。 请注意仅查找元素一次并根据需要重用结果的更改。
另外,您是否尝试过仅使用文本函数——如果不存在元素,它将什么也不做。
The lookup function returns an array of matching elements. You could check if the length is zero. Note the change to only look up the elements once and reuse the results as needed.
Also, have you tried just using the text function -- if no element exists, it will do nothing.
jquery $() 函数总是返回非空值 - 意味着与您选择器 cretaria 匹配的元素。 如果未找到该元素,它将返回一个空数组。
所以你的代码看起来像这样 -
jquery $() function always return non null value - mean elements matched you selector cretaria. If the element was not found it will return an empty array.
So your code will look something like this -
在 jQuery 1.4 中,您可以使用 $.isEmptyObject 函数,但是如果您像我们这些可怜的 Drupal 开发人员一样被迫使用旧版本的 jQ,只需窃取以下代码即可: 使用
如下:
In jQuery 1.4 you get the $.isEmptyObject function, but if you are forced to use an older version of jQ like us poor Drupal developers just steal use this code:
Use it like:
使用“未定义”怎么样?
What about using "undefined"?
无论您选择什么,函数
$()
总是返回一个 jQuery 对象,因此无法用于测试。 最好的方法(如果不是唯一的方法)是使用size()
函数或本机长度属性,如上所述。no matter what you selection is the function
$()
always returns a jQuery object so that cant be used to test. The best way yet (if not the only) is to use thesize()
function or the native length property as explained above.所有原生 jQuery 方法返回的 jQuery 对象不是一个数组,而是一个具有许多属性的对象; 其中之一是“长度”属性。 您还可以检查 size() 或 get(0) 或 get() - 'get(0)' 的工作方式与访问第一个元素相同,即 $(elem)[0]
The jQuery object which is returned by all native jQuery methods is NOT an array, it is an object with many properties; one of them being a "length" property. You can also check for size() or get(0) or get() - 'get(0)' works the same as accessing the first element, i.e. $(elem)[0]
使用
$("#selector").get(0)
来检查 null 。 get 返回 dom 元素,在此之前您正在处理一个数组,您需要在其中检查 length 属性。 我个人不喜欢空处理的长度检查,它由于某种原因让我感到困惑:)use
$("#selector").get(0)
to check with null like that. get returns the dom element, until then you re dealing with an array, where you need to check the length property. I personally don't like length check for null handling, it confuses me for some reason :)使用 length 属性你可以做到这一点。
Using the length property you can do this.
当对象为空时返回此错误:
我尝试以下代码:
when the object is empty return this error:
I try this code :
在未定义或空对象上调用 length 属性将导致 IE 和 webkit 浏览器失败!
而是尝试这个:
或者
Calling length property on undefined or a null object will cause IE and webkit browsers to fail!
Instead try this:
or