Php 更改具有类似类型id的元素的css属性';s

Php 更改具有类似类型id的元素的css属性';s,php,javascript,Php,Javascript,如果id使用javascript,则在更改具有类似类型的元素的css属性时出现问题 我正在通过一系列隐藏元素运行一个php循环。所以我有这样的idimgstat_1,imgstat_2等等 我使用的代码是 foreach($img as $img1){?> <li> <a href="#" onclick="changeimgstat('<?php echo $counter;?>')"> <img src=

如果id使用javascript,则在更改具有类似类型的元素的css属性时出现问题

我正在通过一系列隐藏元素运行一个php循环。所以我有这样的id
imgstat_1
imgstat_2
等等

我使用的代码是

foreach($img as $img1){?>
    <li>
       <a href="#" onclick="changeimgstat('<?php echo $counter;?>')">
         <img src="<?php echo $img1->vchEventImg?>" width="75" height="75" alt="" id="abc_<?php echo $img1->vchImgStatus?>" />
       </a>
    </li>
    <input type = "hidden" value="<?php echo $img1->vchImgStatus?>" id="imgstat_<?php echo $counter;?>">
    <?php $counter++;
}?>
<input type="hidden" value="" name="newimg" id="newimg">

那么,有人能指出我做错了什么吗?最好的解决方案是向元素添加css类属性。并为班级编写风格


在onclick函数中,您可以将类添加到元素

,因为我发现代码中没有错误,但是您是否在
foreach循环
之前定义了
$counter
。您的
img id
应该是
abc\u
,而不是
javascript
中使用的
abc\u

尝试:

CSS

.img3{border:3px solid red;}
.img{border:none;}
HTML和PHP

<?php
$counter=1;
foreach($img as $img1){?>
    <li>
       <a href="#" onclick="changeimgstat('<?php echo $counter;?>')">
         <img class="img" src="<?php echo $img1->vchEventImg?>" width="75" height="75" alt=""  id="abc_<?php echo $counter?>" />
       </a>
    </li>
    <input type="hidden" value="<?php echo $img1->vchImgStatus?>" id="imgstat_<?php echo $counter;?>">
    <?php $counter++;
}?>
<input type="hidden" value="" name="newimg" id="newimg">

  • 看来你有:

    <img ... id="abc_<?php echo $img1->vchImgStatus?>">
    
    尝试以下操作:

    foreach($img as $img1){?>
        <li>
           <a href="#" onclick="changeimgstat('<?php echo $counter;?>')">
             <img src="<?php echo $img1->vchEventImg?>" width="75" height="75" alt="" id="abc_<?php echo $counter;?>" />
           </a>
        </li>
        <input type = "hidden" value="<?php echo $img1->vchImgStatus?>" id="imgstat_<?php echo $counter;?>">
        <?php $counter++;
    }?>
    <input type="hidden" value="" name="newimg" id="newimg">
    
    我已更改id=“abc\ux”
    因为在javascript函数中,您传递的参数是计数器,所以id值也应该是相同的。

    您可以从有效的HTML开始。输入元素不能是li元素的同级。另外,发布页面得到的实际HTML,而不是PHP,因为我们不知道像
    imgstat\uuz
    这样的东西会生成什么。当我像上面那样发出警报时,我在警报框中会得到null。请在
    script
    =
    警报(document.getElementById('abc_'+obj))
    ,因为您没有在id为newimg的
    隐藏字段中指定
    ,在这种情况下,我必须将类删除到一个元素,并从另一个元素删除类,我认为您不需要这样做。该类可用于更改样式,并且您用于状态值(imgstat)的id将执行其部分操作。我尝试了此操作,但没有从以前单击的元素中删除该类,但我也必须从以前的元素中删除该类。您可以在
    图像
    上应用
    公共类
    ,如
    img
    ,这样您就可以用来删除以前应用的
    类=img3
    <img ... id="abc_<?php echo $img1->vchImgStatus?>">
    
    <input ... value="<?php echo $img1->vchImgStatus?>" id="imgstat_<?php echo $counter;?>">
    
    foreach($img as $img1){?>
        <li>
           <a href="#" onclick="changeimgstat('<?php echo $counter;?>')">
             <img src="<?php echo $img1->vchEventImg?>" width="75" height="75" alt="" id="abc_<?php echo $counter;?>" />
           </a>
        </li>
        <input type = "hidden" value="<?php echo $img1->vchImgStatus?>" id="imgstat_<?php echo $counter;?>">
        <?php $counter++;
    }?>
    <input type="hidden" value="" name="newimg" id="newimg">
    
    function changeimgstat(obj)
    {
         var xyz = document.getElementById('newimg').value;
         alert(document.getElementById('abc_'+xyz));
         document.getElementById('abc_'+obj).style.border="3px solid red";
         var status = document.getElementById('imgstat_'+obj).value;
         document.getElementById('newimg').value = status;
    }