如何更改 RSS 框中的每个 url?
How can I change every url in rss box?
我有一个 wordpress 网站,可以在这里找到:
http://neocsatblog.mblx.hu/
在右边你可以看到这个 links:
这个 url 来自我的 youtube rss 频道(上传播放列表),url 是这样的:
https://www.youtube.com/feeds/videos.xml?channel_id=UCxnFBx6UhZS25Poa5-ZeeNg
我想修改此 link 以便我可以在灯箱中显示视频。
例如,我想上交这个 link:
对此:
所以我为它写了一个脚本:
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");
});
});
不幸的是这个脚本没有做正确的事情。
它有什么作用?
该脚本将所有 links url 替换为最新视频 url(列表中的第一项)。
在这种情况下,将所有 url 替换为
"Puzsér szár aranyért sem adná"
link url.
我该如何解决这个问题?
您正在使用 each
遍历所有实例,但是在 each
中您将所有链接设置为相同的 url。
此外,您在 str
中存储的值是第一个匹配选择器的 href。
this
in 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;
});
我有一个 wordpress 网站,可以在这里找到:
http://neocsatblog.mblx.hu/
在右边你可以看到这个 links:
这个 url 来自我的 youtube rss 频道(上传播放列表),url 是这样的:
https://www.youtube.com/feeds/videos.xml?channel_id=UCxnFBx6UhZS25Poa5-ZeeNg
我想修改此 link 以便我可以在灯箱中显示视频。
例如,我想上交这个 link:
对此:
所以我为它写了一个脚本:
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");
});
});
不幸的是这个脚本没有做正确的事情。
它有什么作用?
该脚本将所有 links url 替换为最新视频 url(列表中的第一项)。
在这种情况下,将所有 url 替换为
"Puzsér szár aranyért sem adná"
link url.
我该如何解决这个问题?
您正在使用 each
遍历所有实例,但是在 each
中您将所有链接设置为相同的 url。
此外,您在 str
中存储的值是第一个匹配选择器的 href。
this
in 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;
});