4

ulページ上の要素を検索し、liその要素内の 3 番目の項目の後の項目を非表示にし、 「もっと表示!」ulを追加する次の jQuery コードがあります。クリックすると非表示のリスト項目を表示/切り替えるテキスト リンク。

$('ul')
    .find('li:gt(2)')
    .hide()
    .end()
    .append(
        $('<li>Show More!</li>').click( function(){
        $(this).siblings().toggle(500);
        })
    );

スクリプトの機能の例: http://jsfiddle.net/vf6j5/

スクリプトに実行してもらいたいことは次のとおりです。がクリックされたら、「Show More!」をお願いします。「Show Less!」に置き換えられるテキスト . これを行うと、はるかにユーザーフレンドリーになり、もう少し理にかなっています.

これをどのように達成できるかについてのアイデアはありますか?

4

6 に答える 6

5

http://jsfiddle.net/vf6j5/2/

$('ul')
    .find('li:gt(2)')
    .hide()
    .end()
    .append(
        $('<li>Show More!</li>').click(function() {
            var txt = $(this).text() == "Show More!" ? "Show Less!" : "Show More!";
            $(this).text(txt).siblings(':gt(2)').toggle(500);
        })
    );​
于 2012-12-28T18:29:08.433 に答える
5

これを見てください:

$('ul')
        .find('li:gt(2)')
         .hide()
        .end()
        .append(
            $('<li class="title">Show More!</li>').click( function(){
            $(this).siblings().toggle(500);
                $(".title").html() === "Show More!"
                    ? $(".title").html("Show Less!")
                    : $(".title").html("Show More!")

            })
        );

働いたコード

于 2012-12-28T18:29:18.987 に答える
4
$('ul').find('li:gt(2)').hide().end().append(
$('<li>Show More!</li>').click(function() {
    var $this = $(this);
    $this.siblings().toggle(500);
    $this.text(function(i, t) {
        return t === 'Show More!' ? 'Show Less!' : 'Show More!'
    })
}));

http://jsfiddle.net/aGeMp/

于 2012-12-28T18:27:23.200 に答える
3
$('ul').find('li:gt(2)')
       .hide()
       .end()
       .append(
         $('<li>Show More!</li>').click(function() {
            $(this).text($(this).prev('li').is(':visible') ? 'Show More' : 'Show Less')
                   .siblings().toggle(500);
         })
       );​

フィドル

于 2012-12-28T18:29:58.827 に答える
0

非常に簡単です-変更する要素を選択し、そのテキストを変更します

$('#myButton').text('Show Less!');
于 2012-12-28T18:26:16.910 に答える
0

すでにthisクリックイベントを持っているので、それを呼び出すだけ.text()です:

.... .click(function() {
  var that = $(this);
  that.siblings().toggle(500);
  that.text("Show less!");
});
于 2012-12-28T18:27:07.627 に答える