Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用jQuery检索URL的一部分;它可以工作,但字符串不是';他没有回来_Javascript_Jquery_String_Search - Fatal编程技术网

Javascript 尝试使用jQuery检索URL的一部分;它可以工作,但字符串不是';他没有回来

Javascript 尝试使用jQuery检索URL的一部分;它可以工作,但字符串不是';他没有回来,javascript,jquery,string,search,Javascript,Jquery,String,Search,背景信息:我正在设置一种方法,在我的论坛上嵌入SoundCloud的HTML5小部件。小部件本身根据其高度调整其内容。正如您在下面的JSFIDLE示例中所看到的,我对它进行了设置,这样当小部件悬停在上面时,它的高度从166px扩展到450px,从而触发小部件调整其内容 我试图解决的问题是,所有SoundCloud小部件都可以折叠,无论它们是否是集合/播放列表的一部分。如果它不是集合/播放列表的一部分,则将鼠标悬停在上方时,结果是一个很大的空白区域 我注意到,如果某个声音是set/播放列表的一部分

背景信息:我正在设置一种方法,在我的论坛上嵌入SoundCloud的HTML5小部件。小部件本身根据其高度调整其内容。正如您在下面的JSFIDLE示例中所看到的,我对它进行了设置,这样当小部件悬停在上面时,它的高度从166px扩展到450px,从而触发小部件调整其内容

我试图解决的问题是,所有SoundCloud小部件都可以折叠,无论它们是否是集合/播放列表的一部分。如果它不是集合/播放列表的一部分,则将鼠标悬停在上方时,结果是一个很大的空白区域

我注意到,如果某个声音是set/播放列表的一部分,则URL中会出现/sets/。我正试图修改我的脚本,以便它检查该字符串的URL。如果它找到了它,允许小部件在悬停时展开;如果没有,请不要让它在悬停时展开

目前我正处于一个路障。它可以工作,但是搜索返回的是行中的位置,而不是我需要的字符串。我添加了一点代码来演示:

没有额外代码的JS:

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");
            });
        }
    });

});