首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP foreach循环中使用jQuery .each()?

问如何在PHP foreach循环中使用jQuery .each()?
EN

Stack Overflow用户
提问于 2019-04-16 08:03:38
回答 1查看 249关注 0票数 0

我有一个包含图像数组的foreach循环和一个JS代码,用于添加不同的类,无论宽度是否大于高度,反之亦然。

问题是if函数获取数组中第一个图像的.width()和.height()值,并向随后的所有图像添加相同的类。

我尝试使用.each(),当我打印console.log()时,它给出了第一个图像的值,认识到有更多,但没有将它们添加到特定的类。

HTML:

代码语言:javascript
复制
<?php foreach ( $feedback as $feed ): ?>
  <img class="img" src="<?php echo $feed['pic']; ?>">
<?php endforeach; ?>

PHP:

代码语言:javascript
复制
<?php
  $feedback = [
    [
      'pic' => '1.jpg',
    ],
    [
      'pic' => '1.jpg',
    ],
    [
      'pic' => '1.jpg',
    ],
    [
      'pic' => '1.jpg',
    ],
  ]

JS (jQuery):

代码语言:javascript
复制
$(document).ready(function() {
  var img = $('.img');
  var img_w = img.width();
  var img_h = img.height();
  img.each(function() {
    if ( img_w > img_h ) {
      $(this).addClass('port');
    } else {
      $(this).addClass('land');
    }
  });
});
EN

回答 1

Stack Overflow用户

发布于 2019-04-16 11:03:33

你只能得到第一张图片的宽/高,因为它们在函数之外。您需要从每个图像中获取宽度/高度,因此需要将其放入foreach循环中。此外,不将其设置为变量会更有效,因为每个图像只使用一次宽度和高度。

代码语言:javascript
复制
$(document).ready(function() {
  var img = $('.img');

  img.each(function() {
    if ( $(this).width() > $(this).height() ) {
      $(this).addClass('port');
    } else {
      $(this).addClass('land');
    }
  });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55698776

复制
相关文章

相似问题

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