尝试使用jQuery检索URL的一部分;它是有效的,但是字符串是无效的;t返回

Trying to retrieve part of URL with jQuery; it works, but a string isn't returned

本文关键字:有效 字符串 无效 返回 检索 jQuery URL 一部分      更新时间:2023-09-26

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

我试图解决的问题是,所有SoundCloud小部件都会折叠起来,无论它们是否是集合/播放列表的一部分。如果它不是一个集合/播放列表的一部分,那么当悬停在上面时,结果是一个很大的空白区域。

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

目前我遇到了一个障碍。它有效,但搜索返回的是行中的位置,而不是我需要的字符串。我添加了一点代码来演示:

http://jsfiddle.net/TYWUf/11/

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

(如果我没有问对这个问题,请告诉我)

看看这个,我想这就是你想要的:

http://jsfiddle.net/dSX5g/

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

每个嵌入项目都需要单独评估。

您手动将类设置为html属性,然后使用JQuery选择器展开该类中的任何内容。您应该首先循环iframe,并根据它是否是集合的一部分来设置不同的类。这样,JQuery选择器将只扩展那些作为集合的类。