jquery
  • html
  • css
  • radio-button
  • 2013-04-29 35 views 0 likes 
    0

    首先请访问该小提琴,点击单选按钮: http://jsfiddle.net/skfNh单选按钮需要改变文本individally

    当单选按钮点击你可能已经注意到在这两个 div class='letter'两个文本(与黑色背景颜色)的变化。我想单独做。 我试过用.each()函数做,但没有奏效。如何才能做到这一点?

    有在目前的jQuery代码瞥见我,试图:

    $(".selections").append("<div class='letter'>A</div>"); 
    $(".one").click(function() { 
        $(".letter").text("B"); 
    }); 
    $(".two").click(function() { 
        $(".letter").text("A"); 
    }); 
    

    回答

    1

    在这种情况下,你需要找到letter与点击单选按钮父selections

    $(".selections").append("<div class='letter'>A</div>"); 
    $(".one").click(function() { 
        $(this).closest('.selections').find('.letter').text("B"); 
    }); 
    $(".two").click(function() { 
        $(this).closest('.selections').find('.letter').text("A"); 
    }); 
    

    演示:Fiddle

    +0

    我刚想写一个答案,看到你的答案。你怎么能那么快? :) – 2013-04-29 08:34:52

    +0

    请您简单解释一下,使用'.closest()'函数的目的是什么? – Asif 2013-04-29 08:37:39

    +1

    '.closest()'会找到给定选择符中最接近的父元素 – 2013-04-29 08:38:42

    1
    $(".one, .two").click(function() { 
        var $this = $(this), 
         text = $this.hasClass('one') ? 'B' : 'A'; 
        $this.parent().siblings(".letter").text(text); 
    }); 
    

    http://jsfiddle.net/4y5DX/

    0
    $('.selections').each(function() { 
        var el = $(this), 
         _one = el.find('.one'), 
         _two = el.find('.two'); 
    
        el.append("<div class='letter'>A</div>"); 
    
        var letter = el.find('.letter'); 
    
        _one.click(function() { 
         letter.text("B"); 
        }); 
    
        _two.click(function() { 
         letter.text("A"); 
        }); 
    }); 
    
    0

    这样做将是设置信类的id属性的最简单方法。然后这样做:

    $("#firstletter").text("B"); 
    $("#secondletter").text("B"); 
    

    应更换:

    $("letter") calls 
    
    相关问题