jQuery函数中的Regex将匹配ID+任何数字

Regex in jQuery function that will match ID + any number

本文关键字:ID+ 任何 数字 函数 Regex jQuery      更新时间:2024-02-21

假设我在HTML页面中有一个<div>对象,其ID为#videoModal+从0的任意数字。

回波输出示例:

<div class='modal fade' id='videoModal" . $row['id'] . "' tabindex='-9999' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
    ...
</div>

其中$row['id']是如上所述的任何数字。现在我有一个jQuery函数,可以在Bootstrap 3模式窗口中停止youtube,视频显示在该窗口上

$('#videModal').on('hidden.bs.modal', function() {
    var src = $(this).find('iframe').attr('src');
    $(this).find('iframe').attr('src', '');
    $(this).find('iframe').attr('src', src);
});

但是,只有ID为"videoModal"的div标签附近没有任何数字(读作$row['id'])(例如#videoModal0、#videoModall1、#videoModal9999)时,上述脚本才能工作。在运行时,我如何匹配函数将与每个videoModal+n ID一起工作的模式。(n*-数字)

这就是我尝试的(我尝试了除"."之外的其他模式,但结果相同——什么都没发生,关闭模式窗口后视频仍在播放):

<script>
    var $videoModalIDn = new RegExp('''.');
    var $videoModalID = "#videoModal" + $videoModalIDn;
    $($videModalID).on('hidden.bs.modal', function() {
        var src = $(this).find('iframe').attr('src');
        $(this).find('iframe').attr('src', '');
        $(this).find('iframe').attr('src', src);
    });
</script>

谢谢。

EDIT(这是工作的固定代码):

$('div[id^=videoModal]').on('hidden.bs.modal', function() {
    var src = $(this).find('iframe').attr('src');
    $(this).find('iframe').attr('src', '');
    $(this).find('iframe').attr('src', src);
});

使用属性选择器而不是regex:

选择器为[id^=videoModal]

属性选择器参考:

https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors

相关文章: