gpt4 book ai didi

jquery - 使用 jQuery 删除元素并在元素包含特定文件名时停止

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:05 26 4
gpt4 key购买 nike

我有一个相当愚蠢的插件,如果源文件名以错误的文件扩展名结尾,它还不知道如何完全删除视频标签。

伪代码是这样工作的:

Div populates with a Video element
If Video element SRC isn't a .M4V file name extension, remove the parent div including the Video element
If Video element SRC is a .M4V file extension, behaves as normal.

我现在的代码无法正常工作,但我不确定去哪里寻找好的解决方案。这只是我的语法吗?

        $('.aboveTheFold video').(function(){
if( $('video #postvideo').attr('src').match(/\.(m4v)/) ) {
$("#postvideo").detach().appendTo("#fold-above");
} else if {
$('#postvideo').attr('src').match(/\.(jpg)/) )
{
$('.aboveTheFold video').remove();
};
}
});

一个简化的方法是这样的:

    $("#postvideo").attr('src').match(/\.(jpg)/) ).remove();

但控制台现在告诉我在 jquery.min 中缺少一个括号,我确信情况并非如此......

最佳答案

你的语法绝对是错误的; .(function... 语法不是有效的 JavaScript。您需要在 .( 之间使用函数名称,并且您我们可能正在寻找 each 函数。

如果我明白你想做什么,听起来你可以这样做:

$('.aboveTheFold video #postvideo')   
.not('[src$=".m4v"]') //elements whose src doesn't end with `.m4v`
.each(function() {
$(this).parent().remove();
});

如果你想匹配正则表达式,你也可以将回调传递给 not 函数:

.not(function() {
return !/\.m4v/.test($(this).attr('src'));
})

但是...请注意,#postvideo 是一个 ID,您的代码看起来有多个具有该 ID 的元素。你不应该在一个页面上有重复的 ID;它可能会导致不可预测或错误的行为。我建议您将其更改为类(class)。

关于jquery - 使用 jQuery 删除元素并在元素包含特定文件名时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16574194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com