Jquery点击函数with for循环

时间:2017-01-11 12:21:26

标签: jquery

我将尝试重新解释这种情况:我有一个段落有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,依此类推,但是当单词未被删除时,复选标记将变为未选中状态

3 个答案:

答案 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