2013-08-17 114 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