1

タイトルがわかりにくい場合は申し訳ありませんが、これ以上のことは考えられません。基本的に、私がやりたいことは簡単です。これは私のコードです

jQUery('.button1').click(function() {
    jQuery(".box1").slideUp();
    jQuery(this).remove();
});
jQUery('.button2').click(function() {
    jQuery(".box2").slideUp();
    jQuery(this).remove();
});
jQUery('.button3').click(function() {
    jQuery(".box3").slideUp();
    jQuery(this).remove();
});

などなど....ボックスが増えると、かなり混乱します。それらをすべて組み合わせてjqueryにID番号を実行させる方法はありますか?

4

5 に答える 5

4

ボタンのクラス名(例"buttons")を設定し、IDを使用できます。

<button id="button1" class="buttons">Delete</button>

次に、IDから番号を取得するためのトリックを作成できます。

$(".buttons").on("click", function() {
    var n = this.id.replace("button", "");
    $(".box" + n).slideUp();
    $(this).remove();
});

デモ:http: //jsfiddle.net/DXzKu/

于 2012-06-04T15:00:41.070 に答える
1

属性starts-withselector('^ =)は、次のようにIDに対して機能します。

$('[class^="button"]').click(function() {
  //do stuff
});

クリックした要素から番号を取得し、ボックスを表示/非表示にすることができます。

于 2012-06-04T15:02:00.847 に答える
0

それらを1つのセレクターに組み合わせることができます。

jQUery('#button1, #button2, #button3')...
于 2012-06-04T14:59:05.440 に答える
0
for (var i=1; i<=3; i++) {
   $('.button'+i).click(function() {
      $(".box"+i).slideUp();
      $(this).remove();
   });
}
于 2012-06-04T14:59:13.783 に答える
0

以下のようにしてみてください、

for (var i = 1; i <= 3; i++) {
   jQUery('.button'+i).click({ i: i }, function(e) {
     jQuery(".box"+ e.data.i).slideUp();
     jQuery(this).remove();
   });
}

ただし、マークアップを変更することで、これをより適切に行うことができます。

于 2012-06-04T15:02:03.243 に答える