可以证明,我已经使这件事复杂化了,所以如果我要进入兔子洞,请阻止我。我试图在单击复选框时获取跨度的 id,然后更改该跨度中的内容。
我已经尝试了一些事情,我认为我在正确的轨道上,但正如我所说,我倾向于过度复杂化这些事情。顺便说一下,所有的 id 都是不同的,并且由数据库 id 号设置。
我试过这个
var readInput = $(".check span").attr('id');
$('#'.readInput).text('Read');
什么样的作品。除了即使我点击第三个或第四个复选框,它也只会抓取第一个 id....它也不会更改文本。
我也尝试过抓住跨度,然后以这种方式识别,但这与我所需要的相差甚远。
任何帮助都会很棒!
整个函数看起来像这样......虽然这个问题有很多是不必要的。
$('.memo input.checkIt').on("click", function(){
var name_attr = $(this).attr('name');
var hidden_input = $('input[name="' + name_attr + '"]');
if($(this).siblings('a').attr("class") == 'checked') {
hidden_input.val(0);
}else {
hidden_input.val(1);
$(this).attr('disabled','disabled').parent().addClass('disabled');
var readInput = $(".check span").attr('id');
$('#' + readInput).text('Read');
console.log(readInput);
}
});
这是html
<p class="pull-right check">
@if($cover_design_note->is_read)
{{ date('m/d/Y g:i a', strtotime($cover_design_note->date)) }} <i class="icon-thumbs-up program_this"></i> Read
@else
<input type="checkbox" class="checkIt" name="{{ $cover_design_note->id }}" /><span id="messRead{{ $cover_design_note->id }}"> Unread</span>
@endif
</p>