如何在JavaScript中读取jQuery值

如何在JavaScript中读取jQuery值,javascript,jquery,Javascript,Jquery,我通过jQuery调用RESTAPI,需要读取JavaScript中的videoList值 在我的代码下面,每次警报都会说未定义 如何在javascript中读取视频列表 $(document).ready(function() { $.get('https://123/movies', function(data) { $("#videoList").data(data.entries); }); }); var list = $("#videoList").listview

我通过jQuery调用RESTAPI,需要读取JavaScript中的videoList值

在我的代码下面,每次警报都会说未定义

如何在javascript中读取视频列表

$(document).ready(function() {
  $.get('https://123/movies', function(data) {
    $("#videoList").data(data.entries);
  });
});

var list = $("#videoList").listview;
alert(list);

您正试图在ajax请求完成之前警告该值。移动

var list = $("#videoList").listview; alert(list);
到回调函数体,它应该可以工作

$(document).ready(function() { 
  $.get('https://123/movies', function(data) { 
    $("#videoList").data(data.entries);
    var list = $("#videoList"); 
    alert(list);
  }); 
}); 
特别是指。。。您使用的
.data()
不正确。(在小提琴本身的其他结构错误中,例如不包括jQuery,但我在下面的更新中为您解决了这一问题。)

在问题代码中,我甚至不知道
.listview
应该是什么。这个词似乎没有在其他任何地方使用过,所以我不确定你对它的期望是什么。在jsFiddle代码中,只有一个jQuery选择器(
$(“#videoList”)
),它只返回一组匹配的元素,而不是这些元素中的任何类型的数据属性。在本例中,该集合的长度为1,因为只有一个
#videoList
元素


要设置数据值,请执行以下操作:

$("#videoList").data("foo", data);
其中
“foo”
可以是要与该值关联的任何键。然后,您将使用相同的键稍后获取该值:

var list = $("#videoList").data("foo");

当然,你想用这些数据做什么还不清楚。但实际上,这就是使用jQuery的
data-*
属性在DOM中存储和获取数据的方式


注意:您问题中的代码还暗示了一个计时错误,即您试图在异步操作设置值之前读取该值。如果这真的发生了,那么你会想看看。响应异步操作所做的任何事情都需要由该操作的回调调用。简单地将代码放在下一行是行不通的。

什么是
$(“#videoList”)。listview
应该做什么?jQuery对象上没有名为
listview
的属性。所以它是未定义的。即使它确实存在,它也不会包含尚未收到的结果。你是说你已经动态地向HTML元素添加了自定义数据,并且需要知道如何访问它吗?如果这是您的问题,请添加一个自定义数据,如$(element).data(dataName,data)和access as$(element).data(dataName)。@WPS:您似乎误解了几点,其中之一就是
.data()
在jQuery中的作用。如果您想设置一个数据属性,它应该是:
.data('someKey',data.entries)
然后要稍后获取此数据,您可以从:
.data('someKey')
中获取它。当然,“someKey”可以是您想要的任何键。我不确定这将如何处理复杂的对象而不是简单的值。此外,只有在异步操作完成后才会设置数据。您的代码试图在完成之前读取它。