jQuery - .attr不是一个函数
jQuery - .attr is not a function
构建一个WordPress插件,创建一个自定义风格的视频播放器,基于包含youtube视频id的短代码,它运行良好。但现在我必须将其转换为允许在同一页面上播放多个视频。我通过类名抓取所有玩家元素,然后获取它们的id。YouTube视频id被附加到每个玩家的data-id
属性。在插件的单视频版本中,我可以使用$(#playerid).att('data-id')
来抓取属性。在v2.0中发生了两件奇怪的事情……首先是我不能再使用$
来指定jQuery对象,因为WordPress使用兼容模式(也许我应该想知道为什么我可以在以前的版本中使用$…),但这很容易解决。第二个,我卡住了,是我不能使用attr
。它说
attr不是一个函数
我尝试过。attr('data-id'), .data('id'),并转换为香草。getattribute,但没有任何作用。我已经检查了变量是指向正确的对象,但我不能得到它的属性…任何帮助吗?
我将只发布第一行,所有的检查,直到你得到attr
…
var playerids = [];
var players = document.getElementsByClassName("video-player");
for (x = 0; x < players.length; x++) {
playerids[x] = players[x].id;
}
//for each vidid, create a player
for (i = 0; i < players.length; i++) {
var video_id = jQuery(playerids[i]).attr('data-id');
}
新信息:将全局变量从Vanilla更改为jQuery,现在我可以在全局变量上使用.attr或.data。这是我新的工作代码…为什么局部变量不起作用,而这个能起作用呢?
//find all player divs
var players = jQuery(".video-player");
//get the player div ids
var playerids = [];
for (x = 0; x < players.length; x++) {
playerids[x] = players[x].id;
}
//for each player div, get vidid and create player
for (i = 0; i < players.length; i++) {
var this_video = jQuery(players[i]).data('id');
你可以试试下面的代码:
var video_id = jQuery('#' + playerids[i]).attr('data-id');
因为playerid [i]只有playerid像"playerid"
你的代码中明显错误的是在jQuery(playerids[i]).attr('data-id');
处分配一个没有#
标志的id选择器
正确的语法应该是:jQuery('#' + playerids[i]).attr('data-id');
如果使用id
选择器不是隐式的,请尝试这样做:
jQuery( ".video-player" ).each(function( index ) {
console.log( index + ": " + jQuery(this).attr('data-id') );
});
- 我可以在json对象中添加一个函数吗
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在另一个函数中使用变量this
- 在另一个函数成功结束后调用该函数
- mongoose.connect undefined不是一个函数
- 监听器必须是一个函数
- 使用JS函数来使用另一个函数的语法?node.js
- 如何取消object.prototypes javascript的一个函数
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 嵌套到另一个函数中的Fancybox函数;不起作用
- 如何在javascript中使用不止一个函数
- jQuery-在页面加载时执行一个函数
- jquery UI draggable:UI.children不是一个函数
- jQuery Mobile Undefined不是一个函数
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- JS异常:animate不是一个函数
- 如何将一个函数附加到一个不存在的元素上
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟