Мне нужно взять значение данных из изображения и поместить его в скрытые поля, не используя идентификатор скрытого поля.
Редактировать: я не могу использовать идентификаторы, потому что набор повторяется с другим идентификатором.Попытка выбрать скрытое поле в родительском DOM с jQuery
<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/
Спасибо.
Поскольку вы используете атрибуты 'data-', почему бы просто не добавить атрибут 'data-id' к изображениям, которые нацелены на скрытое поле? '$ ($ (изображение) .attr (" data-id ")). val ($ (image) .attr (" data-value "));' –
Я не могу использовать идентификаторы, потому что набор повторяется с помощью другой идентификатор. Я обновил образец, чтобы отразить это. Спасибо – vts
Спасибо Crazy train, этот подход будет работать и быть более независимым от html. – vts