我知道这是一个常见问题,但我已经对以前回答的问题进行了研究,但似乎无法找到我的错误。
作为我正在制作的应用程序的一部分,在加载页面时,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();
});
}
});
答案 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