2013-08-17 79 views
0

我有這樣的HTML代碼:更改權元素

<div class="custom-input-file product-left"> 
    <input type="file" class="input-file" name="mediabundle_mediatype[file]" id="picture_1"> 
    <div class="archivo">Seleccionar ...</div> 
    <img style="display:none" alt="your image" src="#" id="picPreview1"> 
</div> 

<div class="custom-input-file product-left"> 
    <input type="file" class="input-file" name="mediabundle_mediatype[file]" id="picture_2"> 
    <div class="archivo">Seleccionar ...</div> 
    <img style="display:none" alt="your image" src="#" id="picPreview2"> 
</div> 

<div class="custom-input-file product-left"> 
    <input type="file" class="input-file" name="mediabundle_mediatype[file]" id="picture_3"> 
    <div class="archivo">Seleccionar ...</div> 
    <img style="display:none" alt="your image" src="#" id="picPreview3"> 
</div> 

<div class="custom-input-file product-left"> 
    <input type="file" class="input-file" name="mediabundle_mediatype[file]" id="picture_4"> 
    <div class="archivo">Seleccionar ...</div> 
    <img style="display:none" alt="your image" src="#" id="picPreview4"> 
</div> 

<div class="custom-input-file product-left"> 
    <input type="file" class="input-file" name="mediabundle_mediatype[file]" id="picture_5"> 
    <div class="archivo">Seleccionar ...</div> 
    <img style="display:none" alt="your image" src="#" id="picPreview5"> 
</div> 

,我需要運行的每個但當然改變元素的ID相同的jQuery代碼。這是我所做的代碼:

$("#picture_1, #picture_2, #picture_3, #picture_4, #picture_5").change(function() { 
    readURL(this); 
    $(this).parent().find(".archivo").html("Cambiar imagen"); 
}).css('border-width', function() { 
    if (navigator.appName == "Microsoft Internet Explorer") 
     return 0; 
}); 

$(".document-file input:file").change(function() { 
    $(this).parent().find(".file").html($(this).val()); 
}).css('border-width', function() { 
    if (navigator.appName == "Microsoft Internet Explorer") 
     return 0; 
}); 

但不知道如何迭代槽元素,並改變我改變的,任何幫助?

+0

請注意您有多個具有相同ID的元素。 ID必須是唯一的。 – L105

+0

@ L105我按照你的建議修復了 – Reynier

回答

1

只需更換

$( 「#picture_1,#picture_2,#picture_3,#picture_4,#picture_5」)...

通過

$(".input-file").change(function() { 
    readURL(this); 
    $(this).parent().find(".archivo").html("Cambiar imagen"); 
    $(this).parent().find(".file").html($(this).val()); 
}).css('border-width', function() { 
    if (navigator.appName == "Microsoft Internet Explorer") 
     return 0; 
}); 

現在使用類選擇器(http://api.jquery.com/class-selector/)。

+0

這不起作用,因爲它總是會改變第一張圖片,我需要改變我點擊的元素上的圖片 – Reynier

+0

我更新了我的答案以抓住點擊事件(http:// api .jquery.com /點擊/)。 – Darm

+0

仍然相同,只有第一個更改 – Reynier