Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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对象包含具有自定义';数据';但我可以';t查看数据_Javascript_Jquery - Fatal编程技术网

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

别忘了点击绿色按钮✔