我想通过单击动态创建的图像来更改已检查的无线电btn。这是PHP生成我的图像:
<?php if($subject_list){
foreach ($subject_list as $item):?>
<input type="radio" name="subjectagendaactivity" value="male" />
<img src="/static/images/school/students/subjects/island/island_<?php echo $item['id'];?>_agenda.png"/>
<?php endforeach;}?>
所以我的图像是这样生成的,这是我在JQuery中创建的代码,可以更改.cheked:
$(this).click(function () {
$('input:radio[name=subjectagendaactivity]')[0].checked = true;
});
我需要将[0]更改为$(this)或类似的内容,以便在点击右图时检查我的收音机btn。
答案 0 :(得分:1)
这样的事情对你有用吗?:http://jsfiddle.net/FsshJ/唯一的缺点是它需要img
和input
都有ID。但是,如果您需要/需要,可以将其更改为其他内容。
答案 1 :(得分:0)
试试这个:
$(this).click(function () {
$('input:radio[name=subjectagendaactivity]').attr("checked", true);
});
答案 2 :(得分:0)
$(this).click(checkIt($(this)));
// Elsewhere
function checkIt(rBtn) {
rBtn.checked = true;
}
答案 3 :(得分:0)
试试这个:
$('input:radio[name=subjectagendaactivity]').each(function(index) {
if(index == 0)
{
$(this).attr("checked","checked");
return;
}
});
答案 4 :(得分:0)
假设您要检查的复选框始终是之前的元素您点击的图片:
$('img').click(function () {
var $check = $(this).prev(':checkbox');
if($check.is(':checked'){ // Already checked? Uncheck it!
$check.removeAttr('checked');
}
else{
$check.attr('checked','checked');
}
});
看看jQuery's traversal methods;你应该能够找到一个允许你按照惯例抓住你的复选框。