很奇怪,这个视频组合:https://www.youtube.com/watch?v=KbNXnxwMOqU
在描述中包含一个轨道列表,其中包含要跳转到的轨道的时间帧:
class VideoMode {
public:
int64 width;
int64 height;
std::vector<int64> frequencies;
}
class Display {
protected:
std::vector<VideoMode> modes_;
std::string display_name_;
std::string adapter_name_;
bool primary_;
public:
Display(char* osDevName, char* osAdapterDevName);
// typical getters
}
在Chrome控制台中,我尝试获取这些链接的列表(带有attr onclick的所有锚标签,以“yt.www.watch.player.seekTo”开头):
<a href="#" onclick="yt.www.watch.player.seekTo(00*60+00);return false;">00:00</a>
<a href="#" onclick="yt.www.watch.player.seekTo(04*60+11);return false;">04:11</a>
<a href="#" onclick="yt.www.watch.player.seekTo(08*60+04);return false;">08:04</a>
它只返回第一个锚标记。为什么不呢?
或者,也许它根本不是jQuery,那么选择器的工作原理是什么?
更新:我的错误,它甚至不是jQuery,谷歌使用的CommandLineAPI,它有不同的语法。问题已经结束。欢呼声。
答案 0 :(得分:0)
看起来$(selector)的结果只是一个jQuery对象。因此,它也可能返回attr seletor的jquery对象。
但是你可以在这种情况下使用map来使它工作,attrs将是一个数组:
var attrs = $.map($("a[onclick^='yt.www.watch.player.seekTo']"), function(element) {
return $(element).html(); // or whatever attribute of the element
});
阅读有关jquery选择器的更多信息:https://www.w3.org/TR/css3-selectors/#attribute-selectors
答案 1 :(得分:0)
似乎Youtube以某种方式包装jquery。这对我有用:
$$("a[onclick^='yt.www.watch.player.seekTo']")
其中$$似乎是原始的JQuery实例。希望它有所帮助