jQuery .map()问题

时间:2015-08-13 22:47:51

标签: javascript jquery

我基本上没有使用jQuery的经验,只是足以通过大多数获得。但是,我最近一直在更改一些模板,遇到了一段我没写过的jQuery,但却抛出了一个错误(Uncaught Error: Syntax error, unrecognized expression: /)。我不确定从哪里开始。到目前为止,我所知道的是,我非常确定这段代码会导致它,并且它在scrollItems行正在窒息:

// Cache selectors
var lastId,
    topMenu = $(".nav"),
    topMenuHeight = topMenu.outerHeight() + 50,
    // All list items
    menuItems = topMenu.find("a"),
    // Anchors corresponding to menu items
    scrollItems = menuItems.map(function() {
        var item = $($(this).attr("href"));
        if (item.length) {
            return item;
        }

        ///////////////FANCYBOX 
        $(".fancybox-media").fancybox({
            arrows: true,
            padding: 0,
            closeBtn: true,
            openEffect: 'fade',
            closeEffect: 'fade',
            prevEffect: 'fade',
            nextEffect: 'fade',
            helpers: {
                media: {},
                overlay: {
                    locked: false
                },
                buttons: false,
                title: {
                    type: 'inside'
                }
            },
            beforeLoad: function() {
                var el, id = $(this.element).data('title-id');
                if (id) {
                    el = $('#' + id);
                    if (el.length) {
                        this.title = el.html();
                    }
                }
            }
        });
    });

我已经分别测试了fancybox代码,但它确实有效,但我想我会把它留下来彻底。我还拿出了一些注释掉的代码。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

这条线可能导致错误:

var item = $($(this).attr("href"));

您似乎有href="/"(指向起始页的链接)的链接,因此代码将执行相同的操作:

var item = $("/");

jQuery将尝试将URL解析为选择器,并且您会得到确切的错误消息。

在尝试将href属性用作选择器之前,检查var href = $(this).attr("href"); if (href.substr(0, 1) == "#") { var item = $(href); if (item.length) { return item; } } 属性是否包含书签而不是URL:

for (i in 1:1000){
    table[i,] <- downloadfnc("URL", file = i)
}