使用jQuery更改prepends

时间:2013-01-10 02:02:39

标签: jquery prepend

到目前为止我的jQuery:

jQuery(document).ready(function($) {

    $(".spoiler").hide();
    $(".spoiler-title").prepend('+ ');

    $('.spoiler-title').bind('click', function(){
        $(".spoiler-title").prepend('- ');
        $('.spoiler').animate({height: 'toggle'}, 100);

    });

});

显然这是错误的,因为每次你点击它只是添加' - '并且它不会删除旧的'+'前置。那么你将如何删除新的前置并将其恢复为原来的“+”?

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

试试这个:

jQuery(document).ready(function($) {

    $(".spoiler").hide();
    $(".spoiler-title").prepend('<span class="prependedSign plus">+ </span>');

    $('.spoiler-title').bind('click', function(){
        if($(".prependedSign").hasClass("minus"))
        {
            $(".prependedSign").remove();
            $(".spoiler-title").prepend('<span class="prependedSign plus">+ </span>');
        }
        else
        {
            $(".prependedSign").remove();
            $(".spoiler-title").prepend('<span class="prependedSign minus">- </span>');
        }
        $('.spoiler').animate({height: 'toggle'}, 100);

    });

});

答案 1 :(得分:1)

P你可以继续使用前置,但由于该跨度的内容将是+或a - ,你可以使用类似$('.spoiler-title span').text('+ ');的东西,而不是用.text(' - ')来改变它。

请考虑此代码并根据需要进行更改:

(function($){ $(function(){
  $('.spoiler-title').click(function(){
    $(this).toggleClass('minus').next('.content').slideToggle();
    if($(this).hasClass('minus')){
      $(this).children().text('- ');
    } else { $(this).children().text('+ '); }
  });
}); })(jQuery);

我不知道你有什么,但这里是working fiddle,所以你可以看到我是怎么做到的。希望这对你有用!另请注意,我没有使用$(document).ready()。此更改对代码没有影响,但它将以相同的方式工作,并且它“无冲突”,因此请改为开始使用它。还有其他方法可以避免“$”冲突,但这是我个人使用的。

答案 2 :(得分:0)

试试这个

jQuery(document).ready(function($) {

        $(".spoiler-title").text('+ ');
        $(".spoiler").hide();

        $('.spoiler-title').bind('click', function(){

             if($(this).text().indexOf("- ") > -1)
             {
                   $(this).text('+ ');
                   $(".spoiler").hide();
             }
             else
             {
                  $(this).text('- ');
                  $(".spoiler").animate({height: 'toggle'}, 100);              
             }

        });

    });