jQuery - 从具有相同类的元素中获取不同的值

     2023-05-09     227

关键词:

【中文标题】jQuery - 从具有相同类的元素中获取不同的值【英文标题】:jQuery - get different values from elements with same class 【发布时间】:2015-02-17 23:20:31 【问题描述】:
function ratioDetect () 

    var contWidth = $('.thumbnail-container').width()
    var contHeight = $('.thumbnail-container').height()
    var imgWidth = $('.thumbnail-container img').width()
    var imgHeight = $('.thumbnail-container img').height()

    var contRatio = contWidth/contHeight
    var imgRatio = imgWidth/imgHeight

    if (contRatio > imgRatio) 
        $('.thumbnail-container img').removeClass('full-height')
        $('.thumbnail-container img').addClass('full-width')
    
    else
        $('.thumbnail-container img').removeClass('full-width')
        $('.thumbnail-container img').addClass('full-height')
    

这个函数的作用应该很清楚,问题是我有 6 个这样的“缩略图容器”,所以脚本只从 FIRST 容器中获取值,并仅根据该容器内的 img 进行数学运算并将这些值应用于所有其他图像。

我尝试按照一些关于“.this”用法的教程进行操作,但失败了。我需要为每个单独的容器和他的 child-img 单独执行此代码,因为 6 个 <img>s 中的每一个的大小都不同。

【问题讨论】:

【参考方案1】:

你需要遍历容器并处理

function ratioDetect() 

    $('.thumbnail-container').each(function () 
        var $this = $(this),
            $img = $this.find('img'),
            contWidth = $this.width(),
            contHeight = $this.height(),
            imgWidth = $img.width(),
            imgHeight = $img.height();

        var contRatio = contWidth / contHeight,
            imgRatio = imgWidth / imgHeight;

        if (contRatio > imgRatio) 
            $img.removeClass('full-height');
            $img.addClass('full-width');
         else 
            $img.removeClass('full-width');
            $img.addClass('full-height');
        
    );


【讨论】:

认为你想要$this.find('img')而不是$this('img'),并且始终使用$img而不是$this.find('img') 控制台:“未捕获的类型错误:对象不是函数”在第 120 行,即“$img = $this('img')”不起作用 Alberto:按照我的评论进行调整。

从具有相同类的元素集中选择随机ID [重复]

】从具有相同类的元素集中选择随机ID[重复]【英文标题】:selectrandomidfromsetofelementswiththesameclass[duplicate]【发布时间】:2017-05-1716:01:16【问题描述】:我在一个页面上有一组元素,它们都具有相同的类,但都有不同的id。我正在... 查看详情

jQuery 从同一个元素获取不同的值并将它们用作不同的类

】jQuery从同一个元素获取不同的值并将它们用作不同的类【英文标题】:jQuerygetdifferentvaluesfromsameelementandusethemasdifferentclasses【发布时间】:2021-11-2502:43:34【问题描述】:我正在努力寻找一种方法来获取子元素的文本并将它们用... 查看详情

在jquery中计算具有相同类的元素的数量

】在jquery中计算具有相同类的元素的数量【英文标题】:Countingthenumberofelementswiththesameclassinjquery【发布时间】:2011-10-3114:34:10【问题描述】:如何在jquery中动态计算生成具有相同类的元素?我发现了一个类似的问题,但不幸的是... 查看详情

从jQuery中的多个相同的类名中获取值CSS

】从jQuery中的多个相同的类名中获取值CSS【英文标题】:GetvalueCSSfrommultiplesameclassnameinjQuery【发布时间】:2017-10-0500:00:47【问题描述】:如何在jQuery中从多个相同的类名中获取值CSS?也就是说,我有很多元素要录入数据库,每个... 查看详情

如何从具有相同类的页面中的两个表中提取数据?

】如何从具有相同类的页面中的两个表中提取数据?【英文标题】:Howtoextractdatafromtwotablesinapagewithsameclass?【发布时间】:2019-12-0719:10:19【问题描述】:我想从两个具有相同类的不同表中获取或选择数据。我尝试从“soup.find_all”... 查看详情

jQuery选择具有相同类的随机元素

】jQuery选择具有相同类的随机元素【英文标题】:jQueryselectrandomelementswithsameclass【发布时间】:2012-06-2613:10:26【问题描述】:我有“selectElement”类的元素。当我单击该类的元素时,我“选择”它,并给它另一个类“selectedElements... 查看详情

jQuery问题 - 具有相同类的不同菜单之间的冲突

】jQuery问题-具有相同类的不同菜单之间的冲突【英文标题】:jQueryProblem-Conflictbetweendifferentmenuwithsameclass【发布时间】:2019-11-2316:55:18【问题描述】:大家好,我还在学习jQuery,但我的菜单有问题。当我单击任何具有“tm-nav-vertic... 查看详情

当我单击具有相同类的列表中的按钮时,在顶部元素中添加类 - Jquery

】当我单击具有相同类的列表中的按钮时,在顶部元素中添加类-Jquery【英文标题】:Addclassinthetopelementwheniclickonbuttoninalistwiththesameclasses-Jquery【发布时间】:2018-02-2513:10:09【问题描述】:当我单击一个项目的按钮btn-top-heart时,我... 查看详情

jQuery - 从类的元素中获取属性值的列表

】jQuery-从类的元素中获取属性值的列表【英文标题】:jQuery-getalistofvaluesofanattributefromelementsofaclass【发布时间】:2011-02-1418:58:35【问题描述】:我有一个类.object,它有一个名为level的属性。我想在页面上获取level的所有不同值的... 查看详情

从使用 jQuery 的代码中指定的元素中选择具有给定类的下一个元素

】从使用jQuery的代码中指定的元素中选择具有给定类的下一个元素【英文标题】:SelectingthenextelementwithagivenclassfromanelementspecifiedincodewithjQuery【发布时间】:2012-02-2116:19:27【问题描述】:我现在已经尝试了很多选项!我有一组包... 查看详情

jQuery循环遍历具有相同类的动态创建的元素

】jQuery循环遍历具有相同类的动态创建的元素【英文标题】:jQuerytoloopthroughdynamicallycreatedelementswiththesameclass【发布时间】:2016-04-2600:46:30【问题描述】:我没有。在按钮单击中动态创建的div。<table><tbodyid="ProductDetail"><... 查看详情

如何从元素中具有相同名称的 xml 文件中获取特定值?

】如何从元素中具有相同名称的xml文件中获取特定值?【英文标题】:HowtogetspecificValuesfromaxmlfilewithsameNameinaelement?【发布时间】:2013-09-1206:12:44【问题描述】:我不知道如何从这个特定的XML文档中提取值,并且正在寻求一些帮助... 查看详情

从具有相同ID的多个div中获取数据 - jquery [重复]

】从具有相同ID的多个div中获取数据-jquery[重复]【英文标题】:Getdatafrommultipledivswiththesameid-jquery[duplicate]【发布时间】:2018-12-2721:42:07【问题描述】:我正在尝试使用jquery从共享相同id的多个div中获取数据,但是每次我只获得第... 查看详情

jQuery:获取具有特定类的元素数量

】jQuery:获取具有特定类的元素数量【英文标题】:jQuery:Getnumberofelementsthathaveacertainclass【发布时间】:2013-09-0601:13:06【问题描述】:当单击类.header的元素时,如何获取具有特定类.added的元素的数量?<ulclass="main"><liclass="h... 查看详情

Jquery,在具有相同类的所有锚点之后选择第一个下一个元素

】Jquery,在具有相同类的所有锚点之后选择第一个下一个元素【英文标题】:Jquery,selectfirstnextelementafterallanchorswithsameclass【发布时间】:2020-01-0220:55:11【问题描述】:我想在所有具有相同类的锚点之后选择第一个下一个元素。HTM... 查看详情

获取input相同名字的元素的值

我们在前台的页面定义了许多具有相同名字的input元素,为了取得对应的值,一种是我们在js中可以这样做:vardjs=newArray();$("input[name=‘dj‘]").each(function() djs.push($(this).val()); );我们通过上面的方法会把具有相同名字的input... 查看详情

在jQuery中,当它们都具有相同的名称时,如何获取单选按钮的值?

】在jQuery中,当它们都具有相同的名称时,如何获取单选按钮的值?【英文标题】:InjQuery,howdoIgetthevalueofaradiobuttonwhentheyallhavethesamename?【发布时间】:2013-08-0507:00:13【问题描述】:这是我的代码:<table><tr><td>SalesPro... 查看详情

从 PL/SQL 关联数组中的元素获取不同的值

】从PL/SQL关联数组中的元素获取不同的值【英文标题】:GetDistinctValuefromanElementinaPL/SQLAssociativeArray【发布时间】:2017-07-1220:28:39【问题描述】:假设我有一张表XX_TABLE_SAMPLE,记录如下:TAB_IDBATCH_NAMEEMP_NOEMP_NAMESTATUSSALARYCATEGORY-------... 查看详情