1

次の問題を解決するにはどうすればよいですか?

1)+符号が適切に「-」に更新されていない。その逆も同様です。

2)初めてサインをMy Settingsクリックすると、テストが消えます。+

$(function(){
    $('.myToggler').click(function(e){
        $(this).next().slideToggle();
        var sign=$(this).children(':first');
        sign.text(sign.text() == '+'?'+':'-');
        e.preventDefault;
    });
});

<div class="myToggler">
    <h3><span class="togglerSign">+</span>
    My Settings</h3>
</div>
<div class="mySlider">
</div>
4

3 に答える 3

3

jsBinデモ

  • 以下を使用して要素を探す必要があります。.find()
  • と使用:sign.text() == '+'?'-':'+'

三項演算子に関する知識を更新するには:

[statement]  ?  [if is true]   :  [if is false] ;
sign is '+'  ?  YES?set to'-'  :  NO?set to'+'  ;

jQuery:

$(function(){
    $('.myToggler').click(function(e){
        $(this).next().slideToggle();
        var sign=$(this).find('span');
        sign.text(sign.text() == '+'?'-':'+');
        e.preventDefault;
    });
});
于 2012-09-03T20:01:55.147 に答える
1
var sign=$(this).children(':first');

する必要があります

var sign=$(this).children('span:first');

sign.text(sign.text() == '+'?'+':'-');

する必要があります

sign.text(sign.text() == '+'?'-':'+');
于 2012-09-03T19:59:45.040 に答える
0

それを行うための多くの解決策があります。これを試すこともできます:

$(function(){
    $('.myToggler').click(function(e){
        $(this).next().slideToggle();
        sign = $('.'+this.className+' span:first-child');
        sign.text((sign.text() == "+") ? "-" : "+");
        e.preventDefault;
    });
});​

<div class="myToggler">
    <h3><span class="togglerSign">+</span>My Settings</h3>
</div>
<div class="mySlider"></div>
于 2012-09-03T20:15:28.693 に答える