javascript
  • jquery
  • jquery-selectors
  • 2012-10-02 63 views 0 likes 
    0

    我有一个动态生成的div的列表,其中包含唯一的数据ID和几个图像图标。当点击一个图标时,会弹出一个框,允许根据所选择的动作进行选择。这通过ajax更新数据库。jQuery基于数据属性更改图像src

    我需要的第一个图标改当AJAX reauest返回3

    var ls="<div class='list_body'> 
          <div class='lister1'> 
           <img src='"+path+stat1+"' data-icon_no='1' data-status='"+split_stats[0]+"' data-job_id='"+split_stats[18]+"' /> 
           <img src='"+path+stat2+"' data-icon_no='2' data-status='"+split_stats[1]+"' data-job_id='"+split_stats[18]+"' /> 
           <img src='"+path+stat3+"' data-icon_no='3' data-status='"+split_stats[2]+"' data-job_id='"+split_stats[18]+"' /> 
           <img src='"+path+stat4+"' data-icon_no='4' data-status='"+split_stats[3]+"' data-job_id='"+split_stats[18]+"' /> 
           <img src='"+path+stat5+"' data-icon_no='5' data-status='"+split_stats[4]+"' data-job_id='"+split_stats[18]+"' /> 
           <img src='"+path+stat6+"' data-icon_no='6' data-status='"+split_stats[5]+"' data-job_id='"+split_stats[18]+"' /> 
          </div> 
          <div class='lister'>"+split_stats[6]+" "+split_stats[7]+" "+split_stats[8]+"<br />["+split_stats[13]+"]"+"</div> 
          <div class='lister'>"+split_stats[14]+"</div> 
          <div class='lister'><a href='javascript:void(0);' class='lister_a'>View Appointment &amp; Actions</a></div> 
         </div>"; 
    

    (我曾试图空间代码,以使其更具可读性,但基本上这是许多中只有一行被附加到文档)

    我的jQuery到目前为止...

    $(document).on('click', '.submit_acc', function(){ 
         var selected=$('.conf_app').val(); 
         var agent=$('body').data('agent_id'); 
    
         if(selected==0) 
         { 
          alert("Please make a selection from the available options."); 
          return; 
         } 
    
         var reason=$('.ag_com').val(); 
         var data="agent_id="+agent+"&selected="+selected+"&reason="+reason+"&job_id="+gl_job_id; 
         alert(data); 
         $.ajax({ 
          type:"POST", 
          url:"admin_includes/conf_job.php", 
          data:data, 
          context:gl_job_id, 
          success:function(html){ 
    
           if(html=="3") 
           { 
    //this is where I can't get it to work...... 
            $('.lister1[data-job_id="'+gl_job_id+'"'').find('img').eq(0).src("images/icons/start_green.png"); 
    
           } 
          } 
         })//end ajax 
    
    }); 
    

    我baiscally有麻烦识别排在哪里改变形象。

    gl_job_id是一个全局变量,其保持其被用作在数据JOB_ID标识符的作业ID(这是否感??)..

    目前,这是在所述选择线,但显然引发错误语法是完全错误的:(

    回答

    1

    错误选择在这里:

    $('.lister1[data-job_id="'+gl_job_id+'"'').find('img').eq(0).src("images/icons/start_green.png"); 
    

    你试图通过data-job_id选择div,也删除一个',并添加]

    像这样的东西必须是:

    $('.lister1 [data-job_id="'+gl_job_id+'"]').attr('src', "images/icons/start_green.png"); 
    

    这个代码选择div,然后通过data-job_id找到并设置src属性

    +0

    这不会抛出错误,但它并没有更新的第一张图片图标行。 – Sideshow

    +0

    @Sideshow在ajax结果中可能存在问题?或在'gl_job_id'中,因为这不是唯一的ID。我的选择器工作原理:http://jsfiddle.net/cGbtW/ – webdeveloper

    +0

    @Sideshow或只更新第一个:http://jsfiddle.net/cGbtW/1/ – webdeveloper

    相关问题