我有一个wordpress网站,可以在这里找到:
http://neocsatblog.mblx.hu/
在右侧,您可以看到此链接:
这个网址来自我的youtube rss chanel(上传播放列表),网址是:
https://www.youtube.com/feeds/videos.xml?channel_id=UCxnFBx6UhZS25Poa5-ZeeNg
我想修改此链接,因为我可以在灯箱中显示视频
例如,我想转到这个链接:
到此:
所以我为它写了一个脚本:
jQuery(document).ready(function() {
str = jQuery("#rss-4 ul li a").attr("href");
jQuery("#rss-4 ul li a").each(function() {
jQuery("#rss-4 ul li a").attr("href",str.replace(/(youtube.com)\/watch\?v\=|(youtu.be)\//g, "youtube.com/embed/"));
jQuery( '#rss-4 ul li a' ).attr( 'href', function(index, value) {
return value + '?autoplay=1';
});
//Lightview class need for the lightbox
jQuery("#rss-4 ul li a").addClass("lightview");
});
});
不幸的是,这个剧本不做正确的事
它做什么?
该脚本将所有链接url 替换为最新的视频网址(列表中的第一项)。
在这种情况下,将所有网址重新安排为
“Puzsérszáraranyértsemmnná”
链接网址。
我该如何解决这个问题?
答案 0 :(得分:1)
您正在使用each
循环遍历所有实例,但在each
内,您要设置指向同一网址的所有链接。
此外,您在str
中存储的值是第一个匹配选择器的href。
this
中的 each
是元素集合的实例,请尝试:
jQuery("#rss-4 ul li a").each(function() {
var str = this.href;
str = str.replace(/(youtube.com)\/watch\?v\=|(youtu.be)\//g, "youtube.com/embed/");
str +='?autoplay=1';
// only change the current element
jQuery(this).attr("href", str);
});
- 或使用attr(function)
jQuery("#rss-4 ul li a").attr('href',function(_, oldHref) {
var str = oldHref.replace(/(youtube.com)\/watch\?v\=|(youtu.be)\//g, "youtube.com/embed/");
str +='?autoplay=1';
return str;
});