Javascript 尝试使用jQuery检索URL的一部分;它可以工作,但字符串不是';他没有回来
背景信息:我正在设置一种方法,在我的论坛上嵌入SoundCloud的HTML5小部件。小部件本身根据其高度调整其内容。正如您在下面的JSFIDLE示例中所看到的,我对它进行了设置,这样当小部件悬停在上面时,它的高度从166px扩展到450px,从而触发小部件调整其内容 我试图解决的问题是,所有SoundCloud小部件都可以折叠,无论它们是否是集合/播放列表的一部分。如果它不是集合/播放列表的一部分,则将鼠标悬停在上方时,结果是一个很大的空白区域 我注意到,如果某个声音是set/播放列表的一部分,则URL中会出现/sets/。我正试图修改我的脚本,以便它检查该字符串的URL。如果它找到了它,允许小部件在悬停时展开;如果没有,请不要让它在悬停时展开 目前我正处于一个路障。它可以工作,但是搜索返回的是行中的位置,而不是我需要的字符串。我添加了一点代码来演示: 没有额外代码的JS:Javascript 尝试使用jQuery检索URL的一部分;它可以工作,但字符串不是';他没有回来,javascript,jquery,string,search,Javascript,Jquery,String,Search,背景信息:我正在设置一种方法,在我的论坛上嵌入SoundCloud的HTML5小部件。小部件本身根据其高度调整其内容。正如您在下面的JSFIDLE示例中所看到的,我对它进行了设置,这样当小部件悬停在上面时,它的高度从166px扩展到450px,从而触发小部件调整其内容 我试图解决的问题是,所有SoundCloud小部件都可以折叠,无论它们是否是集合/播放列表的一部分。如果它不是集合/播放列表的一部分,则将鼠标悬停在上方时,结果是一个很大的空白区域 我注意到,如果某个声音是set/播放列表的一部分
jQuery(document).ready(function () {
var soundSrc = $(".soundCloudEmbed").attr("src");
var isSet = (soundSrc).search('%' + '2Fsets' + '%' + '2F');
$(".soundCloudEmbed").hover(
function () {
$(this).addClass("soundCloudHover");
}, function () {
$(this).removeClass("soundCloudHover");
});
});
(如果我问的问题不正确,请告诉我)看看这个,我想这就是你想要的:
每个嵌入项都需要单独评估。您正在手动将该类设置为html属性,然后使用JQuery选择器展开该类中的任何内容。您应该从循环iframe开始,并根据iframe是否是集合的一部分设置不同的类。这样,JQuery选择器将只扩展那些设置为集合的类。看起来您所做的是将其设置为检查搜索返回的值是否大于0(表示该字符串存在)或不大于0(表示该字符串不存在)。我为自己没有想到这一点而感到懊恼。说真的,谢谢你!到目前为止,您的解决方案似乎在我的论坛上运行良好。这不是问题。作为将来的参考,如果您有一个“
indexOf
”类型的函数来搜索字符串中某个子字符串的位置,那么如果找不到该子字符串,它将返回-1。
jQuery(document).ready(function () {
$('.soundCloudEmbed').each(function () {
var soundSrc = $(this).attr("src");
var isSet = (soundSrc).search('%' + '2Fsets' + '%' + '2F');
if (isSet > -1) {
$(this).hover(function () {
$(this).addClass("soundCloudHover");
}, function () {
$(this).removeClass("soundCloudHover");
});
}
});
});