我有几个这样的图像:
<div class="attribImg"><img data-id="9" src="images/attributes/black.jpg" alt="Black"></div>
<div class="attribImg"><img data-id="3" src="images/attributes/red.jpg" alt="Black"></div>
<div class="attribImg"><img data-id="7" src="images/attributes/green.jpg" alt="Black"></div>
<div class="attribImg"><img data-id="8" src="images/attributes/blue.jpg" alt="Black"></div>
和一个类似的隐藏数据字段:
<input type="hidden" id="id[1]" name="id[1]" value="1">
我正在寻找正确的方法,根据图像中data-id
的设置来更改单击图像时隐藏输入的值。
可能与以下内容类似:
$("input:image").each(function(){
$(this).click(function(){
$("#id[1]").val($(this).attr('data-id'));
});
});
使用jquery,可以这样实现:
$('.attribImg').on('click', function () {
var value = $(this).children('img').data('id');
alert(value)
$('#id').val(value);
});
更新:不会设置该值的原因是您在保留的id名称中使用了[]
。您只能按此顺序使用字母(Aa-Zz)、数字(0-9)、连字符(-)、下划线(_)或冒号(:)。这里有一个很好的解释
工作示例