4

これは非常に単純に見えますが、jQueryの経験がほとんどなく、頭を包むことができません。

動的に生成されたHTMLテーブルがあり、このテーブルの各行にリンクがあるとします。

<a id='edit'>Edit User</a>

これで、リンクは各ユーザーのIDをパラメーターとして関数を呼び出す必要があります。私はこれをインラインで行うことができます:

<a id='edit' onClick='editUser(<?php echo $row['id']; ?>)'>Edit User</a>

しかし、jQueryでこれを行うにはどうすればよいですか?

次のような関数を呼び出すことができます。

$('a#edit').click(function () {
      editUser()
      return false;
    });

しかし、この関数にIDを渡すにはどうすればよいですか?最初に非表示のフィールドに貼り付けてから、要素IDでそこから取得できることはわかっていますが、もっと良い方法は確かにありますか?

この方法では、すべてのリンクが同じIDを持つことに気付いたので、ユーザーIDを追加してリンクIDを動的に作成する必要がありますか?しかし、どうすればjQueryを呼び出すことができますか?

4

3 に答える 3

8

IDは、HTML全体で一意である必要があります。したがって、クラスセレクターとHTML5データを使用できます-*属性:

<a class="edit" data-id="<?php echo $row['id']; ?>">Edit User</a>

その後:

$('a.edit').click(function () {
    var id = $(this).data('id');
    // do something with the id
    return false;
});
于 2012-05-10T09:50:08.970 に答える
2

data-*属性を使用してパラメーターを渡します。

<a class='edit' data-id='<?php echo $row['id']; ?>'>Edit User</a>

$('a.edit').click(function () {
   editUser($(this).data("id"));
   return false;
});
于 2012-05-10T09:50:07.693 に答える
0

Curtdata-idが述べたように、HTML5を使用している場合は、これが最適な方法です。HTML4を使用している場合は、リンクのIDでこれを渡します。

<a id='edit-321' class='edit'>Edit User</a>

次に、これを行うことができます(そして!event.preventDefault()ではなく使用しreturn falseます):

$('a.edit').click(function (evt) {
   editUser($(this).attr("id").substring(5));
   evt.preventDefault();
});
于 2012-05-10T10:08:02.410 に答える