javascript
  • jquery
  • jquery-selectors
  • 2012-10-02 99 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

    相關問題