首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery each()不工作吗?

jQuery each()不工作吗?
EN

Stack Overflow用户
提问于 2014-01-15 19:20:14
回答 5查看 402关注 0票数 0

我正在运行一个jQuery函数,它应该根据视频的宽度来修改它的宽度。

我有一堆视频在我的页面,我想让它们适应视频容器,它有一个固定的宽度。所以,在我检查视频宽度是否高于容器的函数之前,应该将视频宽度更改为100%,而不是自动,这是所有视频最初所具有的属性。

这是函数

代码语言:javascript
复制
$(document).ready(function () {
    $('video').each(function() {
        if ($(this).css('width')>$('.player-container')[0].css('width'))
        {
            $(this).css('width', '100%');
        }
    }); 
});

如何放置每一段视频:

代码语言:javascript
复制
<div class="player-container">
   <video class="player-video" width="auto" height="auto">
        <source src="video/mana-labios-compartidos.mp4">
        <source src="video/mana-labios-compartidos.webm">
   </video>
   // more stuff about the video...
</div>

问题是,我在每个.each()中放置了一个警报,而我只看到一个,它实际上是为页面的第一个视频而弹出的。

EN

Stack Overflow用户

发布于 2014-01-15 19:26:29

.css()是一个应该在jQuery对象上使用的方法,但是您在jQuery对象内的DOM元素上使用它。此外,它还返回一个在您的情况下无用的字符串,因此您需要使用.width(),它返回一个整数。如果需要按索引指定元素,请使用.eq()

您完成的代码应该是这样的:

代码语言:javascript
复制
$(document).ready(function () {
    $('video').each(function() {
        if ($(this).width() > $('.player-container').eq(0).width()){
            $(this).css('width', '100%');
        }
    }); 
});

这可能不适合您,但我认为仅通过将每个视频元素上的max-width设置为100%即可达到同样的效果:

代码语言:javascript
复制
.player-container video {
    max-width: 100%;
}
票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21146308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档