如何在手风琴的 h3 headers 上切换文本

How to toggle text on h3 headers of accordion

我的 h3 headers 用作 jquery-driven 手风琴的触发器。我希望能够附加单词“(单击我)”,以便在单击 header 时打开和关闭该短语。 (单击时删除单词,在 "off" 时附加它们)。代码,正如所写的那样,工作得很好......除了它将找到的第一个 h3 的文本放入所有 headers 中。 ("Header One" 和 "Header Two" 变成 "Header One (click me)" 和 "Header One (click me)." 我猜我需要某个版本的 "foreach" - 但它让我难住了。

我受到此处信息的启发 in this example - 但它的不同之处足以让我发现自己在适应过程中停滞不前。

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

$(".ui-accordion-header").not('.ui-state-active').append(' (click me)');

$(".ui-accordion-header").click(function () {

var originaltext = $(this).text();             
var replacetext = " (click me)";      
var newtext = originaltext.replace(replacetext,'');

$(".ui-accordion-header").text(newtext);

$(".ui-accordion-header").append(' (click me)');

$(".ui-accordion-header.ui-state-active:contains('lick')").text(newtext);
});

});

})(jQuery);

如果我理解正确的话,我认为你的问题是你将点击的 header 的文本放入所有 header 中。尝试 this:

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

        $(".ui-accordion-header").not('.ui-state-active').append(' (click me)');

        $(".ui-accordion-header").click(function () {

            $(".ui-accordion-header").each(function(){

                var originaltext = $(this).text();             
                var replacetext = " (click me)";      
                var newtext = originaltext.replace(replacetext,'');
                $(this).text(newtext);
            });

            $(".ui-accordion-header").not('.ui-state-active').append(' (click me)');
        });    
    });    
})(jQuery);