Uncaught SyntaxError:document.ready中的意外标识符

时间:2012-09-24 15:39:37

标签: jquery

我知道这是一个常见问题,但我已经对以前回答的问题进行了研究,但似乎无法找到我的错误。

作为我正在制作的应用程序的一部分,在加载页面时,document.ready函数应该查看无序列表中的每个列表项,检查id是否包含单词“video”,以及如果确实如此,则执行一些操作。

但是,我的代码仍然遇到同样的错误:

Uncaught SyntaxError: Unexpected identifier 

在摆弄代码之后,当我拿出:包含部分时,错误就消失了,但在检查了jQuery文档之后,我认为我正在使用它。

你能给我的任何帮助都会受到大力赞赏:

代码:

$(document).ready(function() {
    $('ul.thumbnails li a img').each(function() {
        if($(this).attr('id'):contains('video')){
            var $parent = $(this).closest('a');
            $parent.remove();
        }
    });
});

PS我的代码中的另一个实例使用:contains但也会抛出此错误

$(".span4 img").click(function(){
    if($(this).attr('id'):contains('video')){
    var id = $(this).attr('id').replace(/video/, '');
    console.log(id);
    $(this).addClass('hideicon');
    $(this).parent('.span4').prepend('<video id="vid></video>');
    $(this).siblings("video").trigger("play");
    $("video#vid" + id).bind("ended", function() {
           $("#video" + id).removeClass('hideicon');
           $("video#vid" + id).remove();
    });

    }

});

3 个答案:

答案 0 :(得分:1)

引发的错误是指您使用冒号。你不应该使用冒号。 JavaScript不像某些语言那样使用冒号来访问任何方法或字段。您可以使用点访问所有内容。 @thatidiotguy为您提供了一些修复代码的解决方案。

答案 1 :(得分:1)

我相信你滥用了包含选择器。如果你在这里阅读api:

http://api.jquery.com/contains-selector/

你应该做$("div:contains('John')")之类的事情,它会返回所有包含John的元素。您应该使用普通的Javascript字符串功能来搜索id中的视频:

1)正则表达式

2)if($(this).attr('id').indexOf('video') != -1){/*code*/}

答案 2 :(得分:0)

这是错误的:contains

仅使用.contains