如何在JavaScript中读取jQuery值
我通过jQuery调用RESTAPI,需要读取JavaScript中的videoList值 在我的代码下面,每次警报都会说未定义 如何在javascript中读取视频列表如何在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
$(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”可以是您想要的任何键。我不确定这将如何处理复杂的对象而不是简单的值。此外,只有在异步操作完成后才会设置数据。您的代码试图在完成之前读取它。