2016-11-15 56 views
-1

問題是,當該頁面加載時,它拉動.jpg圖像,因爲該擴展名是硬編碼的(注意_image1.jpg)有時候可能沒有.jpg圖像,並有.png圖像。我想最初拉動.jpg圖像,但如果這是不可用我想要的.png圖像...我怎麼能做到這一點?我想知道是否有一種方法來重寫擴展名,如果.jpg圖像不可用。需要幫助將.jpg的擴展名替換爲.png或轉換圖像

$(document).ready(function() { 
    dealers = $.parseJSON(dealer_json); 

    $('#productdealersTable .productdealers_dealerid').each(function(i, element) { 
     var elemName = $(this).attr("name"); 
     var elemValue = $(this).val(); 
     var count = elemName.substring(23, elemName.length); 
     elemName = elemName.replace('productdealers_dealerid','dealerid_display_value'); 
     $('#'+elemName).html($(this).find('option:selected').html()); 
     var name = $(this).find('option:selected').html(); 
     var cleanedname = name.replace(/[^a-z0-9]/gi,''); 
     $(this).parent().removeClass().addClass('fieldinput '+cleanedname).addClass(); 
     var elemValue = $(this).val(); 
     jQuery('#dealerid_display_value'+count).html('<img src="/folder-Files/dealerLogos/'+elemValue+'_image1.jpg" />'); 

     var linkDiv = $(this).parent().find('.snapshotLink'); 
     var mpDiv = $(this).parents('.half').find('.marketplace_div'); 
     $.each(dealers.dealers, function(i, item) { 
      if (dealers.dealers[i].id==elemValue) { 
       dealers.dealers[i].show_in_pims == true ? linkDiv.show() : linkDiv.hide(); 
       dealers.dealers[i].sc == true ? mpDiv.show() : mpDiv.hide(); 
       if (dealers.dealers[i].scraped == 1) { 
        $('#dealers_scraped'+count).val(dealers.dealers[i].scraped); 
       } 
       return false; 
      } 
     }); 
    }); 



<div class="productdealersItemHeader"> 
       <h3><span class="h3pad"><a href="javascript:void(0);" class="quickRetailersShowHide" id="quickRetailerOptionShowHide%count%" onclick="showQuickRetailerOptions(%count%);"><span class="dealerid_display_value" id="dealerid_display_value%count%"><img src="/Portal-Files/dealerLogos/%productdealers_dealerid_selectedValue%_image1.jpg"/></span></a></span></h3> 
       <div class="dealerHandle productdealersActive"></div> 
       <a href="javascript:void(0);" class="deleteRetailerLink deleteRowButton productdealersActive" id="productdealersDeleteImg%count%" onclick="deleteListRow('productdealers', '%count%');">Delete</a> 
</div> 
+0

在數據中存儲正確的文件名/路徑,否則您正在修復錯誤的問題。 –

+0

請問[mcve] –

+0

@KevinB不幸的是我無法控制存儲哪個文件名/路徑。 – Wkn445

回答

1

您可以針對圖像一個簡單的要求 - 如果它是可使用它,否則找PNG格式。

var image = "http://placekitten.com.s3.amazonaws.com/homepage-samples/408/287.jpg"; 

function setImages(el, imagesrc) { 
    $.get(imagesrc) 
    .done(function() { 
     document.getElementById(el).src = imagesrc; 
    }).fail(function() { 
     if (imagesrc.match(/\.jpg$/)) 
     setImages(el, imagesrc.replace(/\.jpg$/, ".png")) 
    }); 
} 


setImages("foo", image) 
+0

你能解釋一下el參數是什麼嗎?或者我可以怎麼稱呼我的班級名稱或ID?在你的例子中使用。不知道如何將「dealerid_display_value」傳遞給該函數 – Wkn445

+1

,在這種情況下,它是「foo」。不知道什麼el意味着tho。它看起來好像應該包含一個元素ID。 –