如何在jQuery中将id传递给$ .click

时间:2013-01-09 15:52:36

标签: jquery ajax

我有以下代码

<a  href="#example" id="showtext">view text</a>

    $("#showtext").click (function () {
        $.post('/app/foo/bar/1', function (data){
           $("#msg").html(data);
        });
        $('#example').modal()
    });

点击view text后,我向/app/foo/bar/1发送帖子请求,并将该数据放入ID为#msg的div中。所有这一切都运行正常,但是,现在我希望能够将不同的ids传递给此网址,例如:/app/foo/bar/2/app/foo/bar/3等。

实现这一目标的好方法是什么?

我想到的一种方法是将id附加到属性,如下所示:

<a href="#example" id="showtext${id}">view text</a>

然后使用regex解析jQuery中的id。但是,这种方法看起来很混乱。是否有更优雅的方式来实现这一目标?

1 个答案:

答案 0 :(得分:5)

假设您需要保留href属性,则可以使用data属性。

<a href="#example" id="showtext" data-url="/app/foo/bar/2">view text</a>
$("#showtext").click(function() {
    $.post(
        $(this).data('url'), 
        function(data) {
            $("#msg").html(data);
        }
    );
    $('#example').modal()
});

或者,正如我所提到的,你可以使用href

<a href="/app/foo/bar/2" id="showtext">view text</a>
$("#showtext").click(function(e) {
    e.preventDefault(); // prevent the link being followed normally
    $.post(
        $(this).prop('href'), 
        function(data) {
            $("#msg").html(data);
        }
    );
    $('#example').modal()
});