Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery表td单击无法正常工作_Javascript_Php_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery表td单击无法正常工作

Javascript jQuery表td单击无法正常工作,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,我有生成表的php代码。在td内部,我插入了img。当用户点击td时,它会改变其内部的img。但它不能正常工作。只有偶数行td元素更改图像,而奇数行不更改图像。下面是我的代码: <div class="row" id="atten_list"> <div class="col-sm-offs-3 col-md1-6"> <table class="t

我有生成表的php代码。在td内部,我插入了img。当用户点击td时,它会改变其内部的img。但它不能正常工作。只有偶数行td元素更改图像,而奇数行不更改图像。下面是我的代码:

    <div class="row" id="atten_list">
        <div class="col-sm-offs-3 col-md1-6">
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <td><?php echo get_phrase('roll');?></td>
                        <td><?php echo get_phrase('name');?></td>
                        <td><?php echo get_phrase('1');?></td>
                        <td><?php echo get_phrase('2');?></td>
                        <td><?php echo get_phrase('3');?></td>
                        <td><?php echo get_phrase('4');?></td>
                        <td><?php echo get_phrase('5');?></td>
                        <td><?php echo get_phrase('6');?></td>
                        <td><?php echo get_phrase('7');?></td>
                        <td><?php echo get_phrase('8');?></td>
                        <td><?php echo get_phrase('9');?></td>
                        <td><?php echo get_phrase('10');?></td>
                        <td><?php echo get_phrase('11');?></td>
                        <td><?php echo get_phrase('12');?></td>
                        <td><?php echo get_phrase('13');?></td>
                        <td><?php echo get_phrase('14');?></td>
                        <td><?php echo get_phrase('15');?></td>
                        <td><?php echo get_phrase('16');?></td>
                        <td><?php echo get_phrase('17');?></td>
                        <td><?php echo get_phrase('18');?></td>
                        <td><?php echo get_phrase('19');?></td>
                        <td><?php echo get_phrase('20');?></td>
                        <td><?php echo get_phrase('21');?></td>
                        <td><?php echo get_phrase('22');?></td>
                        <td><?php echo get_phrase('23');?></td>
                        <td><?php echo get_phrase('24');?></td>
                        <td><?php echo get_phrase('25');?></td>
                        <td><?php echo get_phrase('26');?></td>
                        <td><?php echo get_phrase('27');?></td>
                        <td><?php echo get_phrase('28');?></td>
                        <td><?php echo get_phrase('29');?></td>
                        <td><?php echo get_phrase('30');?></td>
                        <td><?php echo get_phrase('31');?></td>
                    </tr>
                </thead>
                    <tbody>
                            
                        <?php 
                        $students   =   $this->db->get_where('student' , array('class_id'=>$class_id))->result_array();
                            
                        foreach($students as $row):
                        
                            ?>
                            <tr class="gradeA" id="adata">
                                <td><?php echo $row['roll'];?></td>
                                <td><?php echo $row['name'];?></td>
                                <?php
                                for($i=1; $i<=31; $i++){ ?><?php
                                    $datea = $i;
                                    $full_date  =   $year.'-'.$month.'-'.$datea;
                                    
                                    //inserting blank data for students attendance if unavailable
                                    $verify_data    =   array(  'student_id' => $row['student_id'],
                                                                'date' => $full_date);
                                    $query = $this->db->get_where('attendance' , $verify_data);
                                    if($query->num_rows() < 1){
                                    $this->db->insert('attendance' , $verify_data);}
                                    
                                    //showing the attendance status editing option
                                    $attendance = $this->db->get_where('attendance' , $verify_data)->row();
                                    $status     = $attendance->status;
                                    $id = $attendance->attendance_id;
                                ?>
                            <?php if ($status == 1):?>
                                <td align="center" id="status" title="<?php echo $id; ?>">
                                <img src="<?php echo base_url("/assets/images/present.png"); ?>" alt="StackOverflow" title="StackOverflow is the best!" />  
                                </td>
                            <?php endif;?>
                            <?php if ($status == 2):?>
                                <td align="center" id="status" title="<?php echo $id; ?>">
                                <img src="<?php echo base_url("/assets/images/absent.png"); ?>" alt="StackOverflow" title="StackOverflow is the best!" />  
                                </td>
                                
                            <?php endif; ?><?php }?><?php $this->db->where('class_id',$class_id);
    $this->db->from('student');
    $nofs = $this->db->count_all_results(); ?>
     
<!-- Script for changing image on td click -->
                                        <script>
$("table tbody tr#adata td#status").click(function() {
      var img = $(this).find("img")[0];
      if(img.src == '<?php echo base_url("/assets/images/present.png"); ?>'){
      img.src = img.src.replace('<?php echo base_url("/assets/images/present.png"); ?>', '<?php echo base_url("/assets/images/absent.png"); ?>');   
       
      }
      else if(img.src == '<?php echo base_url("/assets/images/absent.png"); ?>'){  img.src = img.src.replace('<?php echo base_url("/assets/images/absent.png"); ?>', '<?php echo base_url("/assets/images/present.png"); ?>');
      }else{}
    }); </script> 
                            </tr>
                        <?php endforeach;?>
                        
                </tbody>
            </table>
        </div>
    </div>

试试这种语法

$('table').on('click','td',function(){
 //Your code
});

同时使用'class',因为'ID'属性应该是唯一的

类似的问题-旁注:
ID
属性必须是唯一的,如果我删除了像$(table tr#someid td)这样的ID,仍然无法使用try$('table')。on('click','tr adata td',function(){但未更改img标记内的图像。您是否收到错误或未显示任何更改?未收到错误,您的代码正在检测img标记,但未更改图像。请尝试使用
$(图像选择器).attr('src','url');
语法更改img标记的源替换
“alt=”StackOverflow“title=”StackOverflow是最好的!“/>
”alt=“StackOverflow”title=“StackOverflow是最好的!”/>
与status==2图像标记类似