当前位置: 代码迷 >> JavaScript >> 在PHP While循环中使用jQuery更改CSS
  详细解决方案

在PHP While循环中使用jQuery更改CSS

热度:57   发布时间:2023-06-06 09:37:12.0

我已经尝试了一段时间,并经历了一系列方法,但是没有雪茄。

问:如何在AJAX响应后使用jQuery更改PHP while循环中单个div的颜色?

加尔!

这是我在响应中的jQuery函数:

   $('.circle').each(function(){
   $(this).css("background", "red");
});

在我的PHP文件中,我基本上说的是,如果状态存在,则回显div,但是当jQuery由响应触发时,它将影响所有$ red变量,而不只是我要定位的变量。 test2.php:

    $red = "<div id='basic' class='circle' style='display: block; border-radius: 100%; width: 60px; height: 60px;' value='1'></div>";
            if($row2['status'] == 1 || 0){
        echo $red;
    }

令人沮丧的是,如果我根据具有不同背景颜色和显示的数据ID来回显变量,则可以很好地工作:none ,但是使用jQuery方法无需刷新就可以正常工作。

AJAX和JQuery是同步的。 尝试将您的函数设置为回调,尤其是当它们依赖DOM更改时。

我认为您的问题是所有div都是同一个类,因此jQuery代码会影响它们。

您是否考虑过使用div的ID(而不是类)进行选择? 经验法则:使用class属性标识组中的所有相似实体,并使用ID唯一标识组中的每个实体。 ID是唯一的,类可以共享。

顺便说一句,如果要更改单个div,为什么还要使用jQuery的each() each()用于迭代一组匹配的元素,当您知道只有一个要操作的元素时,它没有用。

如果要单独选择div,请使用唯一的ID命名每个div:

<div if='basic_1' class='circle' ... >
<div if='basic_2' class='circle' ... >
<div if='basic_3' class='circle' ... >

然后更改您的jquery以仅选择要更改的div:

$('#basic_2').css("background", "red");

我知道您使用ajax执行php脚本并将一些变量( $row2['status'] )传递给它,如果此变量为1,则您希望将此特定div的背景色设置为红色

但是您没有告诉我们循环是否在每次迭代中都生成一个div,并且您想将特定的div背景设置为红色,或者只需要更改一个div背景颜色。

如果您只想更改一个div的背景颜色,则当条件发生时( $row2['status'] == 1 ),您应该break; 然后跳出循环,您必须使用id not class选择div,因为正如@Marcovecchio所说

ID是唯一的,类可以共享。

如果您的循环将回显多个潜水,则必须确保您的页面不包含class = 'circle'其他div,因此您只能更改回显的div。

如果您提供循环并告诉我们更多您想确切执行的操作,那就更好了。

  相关解决方案