1

我需要从图像中获取数据值并将其放在隐藏字段上,而不使用隐藏字段的 ID。
编辑:我不能使用 id,因为该集合以不同的 ID 重复。

   <div class="optionImageSelection">
    <input type="hidden" id="hdnIn"> 
    <ul>
        <li>
            <img src="iamge1.jpg" data-value="val1" class="optionImageSelect">
        </li>
        <li>
            <img src="image2.png" data-value="val2" class="optionImageSelect">
        </li>
    </ul>
   </div>
        <div class="optionImageSelection">
<input type="hidden" id="hdnIn2"> 
<ul>
    <li>
        <img src="iamge3.jpg" data-value="val3" class="optionImageSelect">
    </li>
    <li>
        <img src="image4.png" data-value="val4" class="optionImageSelect">
    </li>
</ul>
 </div>

jQuery:

function OptionImage(image) {
   this.selectImage = function () {

       //this works but it needs to be generic. 
       var hdnSelector =  $("#hdnIn");     
       //this doesn't work but it's what I need
       //var hdnSelector = $(image).parents('input:hidden:first');
       $(hdnSelector).val($(image).attr("data-value"));
        alert($(hdnSelector).val());

   };

}

 $(document).ready(function () {
   $(".optionImageSelect").click(function () {
       var oi = new OptionImage($(this));
       oi.selectImage();
   });

});

Js小提琴:http: //jsfiddle.net/p4pMg/1/

谢谢你。

4

2 回答 2

1

代替

var hdnSelector =  $("#hdnIn");  

你可以使用这个选择器

var hdnSelector =  $(image).closest('ul').prev('input')  

您可以使用closest和的组合prev

检查小提琴

于 2013-07-16T21:50:12.697 回答
0

使用$('input[type=hidden]')选择器。

于 2013-07-16T21:51:04.630 回答