2

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

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

但是,我的代码不断收到相同的错误:

Uncaught SyntaxError: Unexpected identifier 

稍微摆弄一下代码后,当我取出 :contain 部分时,错误消失了,但在检查了 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();
    });

    }

});
4

3 回答 3

1

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

于 2012-09-24T15:43:28.623 回答
1

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

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

您应该执行类似的操作$("div:contains('John')"),这将返回包含 John 的所有元素。您应该使用普通的 Javascript 字符串功能来搜索 id 中的视频:

1) 正则表达式

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

于 2012-09-24T15:45:44.127 回答
0

这是错误的 :contains

只用.contains

于 2012-09-24T15:46:34.800 回答