javascript对象包含具有自定义';数据';但我可以';t查看数据
我得到了以下代码片段:javascript对象包含具有自定义';数据';但我可以';t查看数据,javascript,jquery,Javascript,Jquery,我得到了以下代码片段: $(window).load(function() { run($('.stickable')); }) var run = function (headers){ var $window = $(window) var $headers $headers = headers.each(function(){ var $currentHeader = $(this).wrap('<div class="followWrap">')
$(window).load(function() {
run($('.stickable'));
})
var run = function (headers){
var $window = $(window)
var $headers
$headers = headers.each(function(){
var $currentHeader = $(this).wrap('<div class="followWrap">');
$currentHeader
.data('startPosition', $currentHeader.offset().top)
.data('headerHeight', $currentHeader.outerHeight())
.parent()
.height($currentHeader.outerHeight())
.width($currentHeader.outerWidth())
});
}
$(窗口).load(函数(){
运行($('.stickable');
})
var run=函数(标题){
变量$window=$(窗口)
var$headers
$headers=headers.each(函数(){
var$currentHeader=$(this.wrap(“”);
$currentHeader
.data('startPosition',$currentHeader.offset().top)
.data('headerHeight',$currentHeader.outerHeight())
.parent()
.height($currentHeader.outerHeight())
.width($currentHeader.outerWidth())
});
}
当我放置调试器和控制台$headers时,我会得到一个div数组。然而,typeof显示这是一个对象。当我尝试$headers.data()时,我得到第一个div的起始位置和headerHeight。当我尝试$headers[2]时,我得到第二个div。当我尝试$headers[2].data()时,我得到一个错误。当我做$时,每个循环都会得到正确的信息。我的问题是为什么我不能声明$headers[2].data(),或者简单地选择任何div并显示它的数据?这是因为通过索引访问jQuery对象会返回一个doElement,而不是另一个jQuery对象,因此
data()
方法不存在。使用eq()
按索引获取jQuery对象:
var data = $headers.eq(1).data(); // zero-based index, 2nd item = index 1
别忘了点击绿色按钮✔