我将尝试重新解释这种情况:我有一个段落有72个单词,并且它们有一个toggleClass,这些单词为用户突出显示并有一个光标。当点击任何单词时,我想根据它检查复选标记。所以有72个复选标记,每个都有一个。
//adding to 72 paragraph words a toggle class
$(".question_text span").click(function() {
$( this ).toggleClass( "green" );
});
//gives id to every 72 words in the paragrapgh
$('.question_text span').each(function(idx) {
$(this).attr('id', 'a' + idx);
});
// checkmarks have id #Q15v2_1 to #Q15v2_72
所以我想要点击突出显示的单词的第一个单词时检查marik#Q15v2_1,当单击第二个单词时#Q15v2_2,依此类推,但是当单词未被删除时,复选标记将变为未选中状态
答案 0 :(得分:2)
你可以循环遍历所有元素添加一个如下的切换:
.folder
这只是一个例子,但我认为这是正确的方法。
答案 1 :(得分:0)
你可以这样做:
$('.question_text span').each(function(idx) {
$(this).attr('id', 'a' + idx);
});
$(document).on('click', '[id*="Q15v2_"]', function() {
$(this).prop('checked', !$(this).prop("checked"));
});
有关解释:
我使用事件委派:$(document).on('click', '[id*="Q15v2_"]'
以防您动态添加元素。选择器[id*="Q15v2_"]
选择id
包含Q15v2_
此行$(this).prop('checked', !$(this).prop("checked"));
切换您刚刚点击的元素的属性checked
答案 2 :(得分:0)
我采取与其他人不同的方法。使用正确的值渲染[i]
。
<label for="Q15v2_[i]">text</label>
<input type="checkbox" id="Q15v2_[i]" name="Q15v2_[i]">
这就是标签的用途,no need for jquery