使用 Jquery 调用每个元素时出现问题

发布于 2024-09-19 16:01:24 字数 1090 浏览 7 评论 0原文

我正在尝试创建新的 div 元素,然后使用 Jquery 更改它的位置。但是 J 查询仅影响第一个元素。我想更改具有不同编号的所有元素位置。

<div class="userList">
<?php $categories = find_category();

    foreach($categories as $category): ?>
<div id="user">
 <img id="<?php echo $category['cat_id']; ?>" src="<?php echo $category['cat_image']; ?>" />
 <a></a>
</div>
 <?php endforeach ;?>
</div>

如果我在 Jquery 中像

 var a= 60;
$(".userList").children().css({'left':a+'px' ,'top':a+'px'});
  a+=60;

这样将所有

更改为
但我需要使第一个左:60px 顶部:60px 和下一个左:120px 顶部:120px。

我还使用了 .each 函数,例如

$(".userList").each(function(){

    $("#user").css({'left':a+'px' ,'top':a+'px'});
                a+=60;

                });

但这次仅将第一个

更改为
而其他则不受影响。

I am trying to create new div element and then change it`s position with Jquery.But J query effects only first element.I want to change all elements position with different number.

<div class="userList">
<?php $categories = find_category();

    foreach($categories as $category): ?>
<div id="user">
 <img id="<?php echo $category['cat_id']; ?>" src="<?php echo $category['cat_image']; ?>" />
 <a></a>
</div>
 <?php endforeach ;?>
</div>

If I make in Jquery like

 var a= 60;
$(".userList").children().css({'left':a+'px' ,'top':a+'px'});
  a+=60;

This changes all <div id="user"> to <div id="user" style="left: 60px; top: 60px; ">
But I need to make first one left:60px top:60px and next one left:120px top:120px.

I also used .each function like

$(".userList").each(function(){

    $("#user").css({'left':a+'px' ,'top':a+'px'});
                a+=60;

                });

But this time only first <div id="user"> changed to <div id="user" style="left: 60px; top: 60px; "> And the other does not effected.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

单挑你×的.吻 2024-09-26 16:01:24

首先,您应该意识到页面上不能有多个具有相同 ID 的元素。您应该将 user 创建为一个类。

关于这个问题,您可以使用 .each() 循环,并将 60 乘以当前的 index (加一)。

这将为您提供 60、然后 120、180、240 等。

var a= 60;
$(".userList").children().each(function( idx ) {
    var position = a * (idx + 1);
    $(this).css({'left': position ,'top': position});
});

First, you should be aware that you can not have more than one element on a page with the same ID. You should make user a class instead.

With regard to the issue, you can use an .each() loop, and multiply 60 by the current index (plus one).

This will give you 60, then 120, 180, 240, etc.

var a= 60;
$(".userList").children().each(function( idx ) {
    var position = a * (idx + 1);
    $(this).css({'left': position ,'top': position});
});
娇妻 2024-09-26 16:01:24

您设置 css 的部分正是您正在使用的代码吗?如果是这样,看起来每次迭代都会设置 a = 60。您需要在循环开始之前定义它。

The part where you set the css, is that exactly the code you're using? If so, it looks like each iteration will set a = 60. You need to define it before the start of the loop.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文