【问题标题】:How to change css using jquery in a php loop如何在 php 循环中使用 jquery 更改 css
【发布时间】:2013-02-14 08:28:39
【问题描述】:

我想更改我的文本框的 css 并在 php 循环中禁用提交按钮,如果它满足某些条件。

我已经成功地通过 php 循环了数据,但是只有第一个文本框被改变了

我会放一些php代码,因为php部分已经成功完成

脚本

<style type="text/css">
.first
{
  color:#0C0
}
.second
{
   color:#F00
}

</style>

 <script src="js/jquery-1.8.3.js"></script>
 <script src="js/jquery-ui.js" > </script>
 <script> var $j = jQuery.noConflict();

 function changeClass(str)
 {
      if ($j('#status').val()== "No")
      {
          $j('#status').addClass('first');
      }
  else
  {
         $j('#status').removeClass('first');                                
         $j('#status').addClass('second');                   
         $j('#submit').prop('disabled', true);
       }              
return true;
 }
  </script>

HTML

 <table width="800" border="0" align="center" bordercolor="#000000" 
          onmousemove="changeClass(this);"> 
 <?php do { ?>
     <tr bgcolor="#FFFFCC">
       <th  align="center" bgcolor="#3366FF" class="style68" >Status</th>
       <th  align="center" bgcolor="#3366FF" class="style68" >Submit</th>
       <td  align="center" bgcolor="#CCCCCC">
          <form  > <input type="text"  id="status" name="status" 
           value="<?php echo$data['status']; ?>" >
       </td> 
       <td  align="center" bgcolor="#CCCCCC">
         <button id="submit" name="submit" type="submit" > Submit</button>
    </form>
   </td>
         </td>
                 </tr>   
                  <?php } while ($data = mysql_fetch_assoc($re)); ?>
                </table>

【问题讨论】:

  • id 'status' 的元素有多少?,我的意思是它也重复了吗?
  • id="status" 的文本框将被重复。
  • 这就是你不能对多个元素使用相同的 id 的问题。这就是你不能对多个元素使用相同的 id 的问题。如果要更改所有元素的样式,则必须对所有元素使用相同的类。
  • 也许你应该给它同样的类并且有一个递增的 id。
  • @arjuncc 我该怎么做?我真的不明白你在说什么。

标签: javascript jquery html css loops


【解决方案1】:
  $(document).ready(function(){
  $('table').hover(function(){
    $( ".changeClass" ).each(function() {
    if($(this).val()=='No')
    {
    $(this).addClass( "second" );
    $(this).parent().parent().find('.submitClass').prop('disabled', true);
    }
    else
    {
    $(this).addClass( "first" );
    }
    });
    return true;
    })
});



  <input type="text" class="changeClass"  name="status"  value="<?php echo$data['status']; ?>" >

【讨论】:

  • 简写$j('.changeClass').removeClass('first').addClass('second');
  • 这是否意味着代码会在类内部添加另一个类?
  • @user1852728 对不起,我不明白你的意思
  • @user1852728:不在里面,你可以在同一个元素里有几个类,比如class="first second third",另一方面,你只能有一个id,#idname是基于jquery的选择器id 和 '.classname' 用于根据类名选择元素
  • 我有一个小提琴给你,这是我从你的要求中理解的。如果它不是你想要的。然后清我。 jsfiddle.net/QTp4X/1
【解决方案2】:

HTML 中的元素 id 必须是唯一的。您应该使用表 id 并通过表 td children 来执行此操作。或者您可以使用 td 类状态并将它们称为 .status 而不是 jquery 中的#status。

【讨论】:

    猜你喜欢
    • 2015-10-31
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2011-04-13
    • 2015-08-16
    • 2014-12-19
    • 2011-09-08
    相关资源
    最近更新 更多