如何获取 jQuery 对象的大小
我使用以下方法将键值对保存在 div 容器中:
$( '#div_id').data( key, value);
最后,我需要检查此 div 容器中是否存储了任何内容。
因此,首先我通过调用以下方法获取内容:
var data = $( '#div_id').data();
然后使用 data.length 或 data.size 检查其大小。
但这两个功能都不存在。据我所知,jquery 中的数据函数返回一个对象,所以我应该能够获取该对象的大小。
jquery中如何获取data函数返回的对象的大小?
I'm saving key-value pairs in div container by using:
$( '#div_id').data( key, value);
At the end I need to check if anything is stored in this div container.
So first I get the content by calling:
var data = $( '#div_id').data();
Then to check its size with data.length or data.size.
But both functions don't exists. As I know the data function in jquery returns an object, so I should be able to get the size of this object.
How do I get the size of the object returned by the data function in jquery?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
对象没有“大小”。不过,您可以计算它的属性:
用法:
Objects do not have a "size". You could count its properties, though:
Usage:
将这些键/值对存储在对象/节点上的这个级别并不是最好的主意。
返回附加到此
节点
的所有数据,这将包括事件处理程序
,例如有任何数据。因此,最好的解决方案是创建一个包含所有数据的对象:
针对您的实际问题。普通 Javascript 对象不拥有
.length
属性。您必须自己检查,循环遍历键:这应该通过检查和调用
.hasOwnProperty()
方法来改进,该方法确保当前属性不是从原型中的某个地方继承的链。It's not the best idea to store those key/value pairs at this level on the object/node.
returns all data that is attached to this
node
, this would includeevent handlers
for instance of there are any.So the best solution is to create an object which contains all of your data:
To your actual question. Plain Javascript objects do not own a
.length
property. You have to check that for yourself, looping over the keys:This should be improved by also checking and calling the
.hasOwnProperty()
method which makes sure that the current property is not inheritated from somewhere in the prototype chain.你知道你用的是什么“钥匙”吗?如果是这样,只需检查键,如果不是,存储一个对象或数组。
例如
,然后当您需要它时,只需抓住那个键...
请记住,JavaScript 对象/“地图”没有“长度”或“大小”方法/属性,因此如果您需要检查如果它包含某些东西,像这样的通用函数应该可以工作。
Do you know what "keys" you were using? if so, just check the keys, if not, store an Object or Array instead.
e.g.
Then when you need it back out, just grab that one key...
Keep in mind, that JavaScript Objects/"Maps" don't have a "length" or "size" method/property, so if you need to check if it contains something, a generic function like this should work.
Javascript 对象没有长度属性。但您可以使用简单的 jQuery 函数轻松计算它。
然后将其与 $('#div_id').dataLength()
编辑 一起使用:
注意有关 .data 中的数据结构和 .hasOwnProperty 检查的其他答案
Javascript Objects doesn't have an length property. But you could easily calculate it with a simple jQuery function.
Then use it with $('#div_id').dataLength()
EDIT:
Mind the other answers about the data-structure in .data and the check for .hasOwnProperty