首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-01-15 19:21:57

使用jQuery对象作为数组,指定索引实际上将返回DOM元素,因此不支持jQuery函数。如果您想要匹配集合中的第一个元素,请使用.eq(0)

另外,尝试使用width()函数(因为它返回一个整数,而不是.css('width')返回的字符串)。对于您正在运行的比较程序来说,这特别方便。

您的最终代码是:

代码语言:javascript
复制
if ($(this).width() > $('.reproductor-container').width())
票数 3
EN

Stack Overflow用户

发布于 2014-01-15 19:24:02

我想你的选择是错的

而不是使用

代码语言:javascript
复制
$('.player-container')[0].css('width')

试着使用

代码语言:javascript
复制
$('.player-container').eq(0).css('width')

为了安全起见,.css(“宽度”)返回的是一个数字,而不是像“200 is”这样的字符串。

代码语言:javascript
复制
if (parseInt($(this).css('width')) > parseInt($('.player-container').eq(0).css('width'))){
票数 0
EN

Stack Overflow用户

发布于 2014-01-15 19:25:04

代码语言:javascript
复制
$('.player-container')[0]

获取一个元素,所以

代码语言:javascript
复制
$('.player-container')[0].css('width')

会给你一个TypeError。试一试

代码语言:javascript
复制
$('.player-container').css('width')

而不是。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21146308

复制
相关文章

相似问题

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