选择元素的 id
我已经尝试解决这个问题两天了,但没有任何意义。 我使用 jquery 从页面中选择第一个元素并使用以下方式获取它的 id:
$('#main li.twitter').eq(0);
控制台日志输出:
[li class="twitter事件左" id="131325521001848832" style="display: list-item;"> …李]
但是:
var id = parseInt($('#main li.twitter').eq(0).attr('id'));
输出
131325521001848830
不是我所期望的!如果我尝试选择具有该 id 的元素,它会返回一个空数组,因此它甚至不存在。我在这里做错了什么?
I have been trying to figure this out for 2 days and could not make any sense.
I use jquery to select the first element from the page and get it's id using:
$('#main li.twitter').eq(0);
The console log outputs:
[li class="twitter event left" id="131325521001848832" style="display: list-item; ">… li]
However:
var id = parseInt($('#main li.twitter').eq(0).attr('id'));
Outputs
131325521001848830
Not what I would expect! And if I try to select the element with that id it return an empty array so it doesn't even exist.What am i doing wrong here ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
数字 ID 在 HTML5 中有效,并且您可以在以前的版本中使用它。然而,这个数字太大了,无法用 JS 使用的浮点表示法来准确表示。
在控制台中输入数字
输出:
所以你最好将它保留为字符串。
Numeric ids are valid in HTML5 and you can get away with it in previous versions. However, the number is so large it cannot be accurately represented in the floating point representation JS uses.
Typing the number into the console
outputs:
So you are better off keeping it as a string.
eq
方法构造一个仅包含位置处的元素的 jQuery 对象i
在当前 jQuery 集中。因此,您看到的控制台输出是 jQuery 对象(包含 DOM 元素)的表示。id
是一个字符串值,而不是整数;因此,如果您想稍后再次检索它,请不要parseInt
它。此外,为了将来参考,在使用
parseInt
时应始终指定基数(将10
作为函数的第二个参数传递给函数)。The
eq
method constructs a jQuery object containing just the element at positioni
in the currently jQuery set. Therefore the console output you're seeing is the representation of the jQuery object (containing the DOM element).An
id
is a string value, not an integer; so don'tparseInt
it if you want to retrieve it again at a later date.Furthermore, for future reference, you should always specify a radix when using
parseInt
(pass10
as the second parameter to the function).