jquery <a>标记点击事件

Mav*_*ick 13 html ajax jquery post

我正在构建一个显示搜索用户信息的代码.然后,用户信息fieldset以及图像,名字,姓氏和少量个人资料信息显示.显示,并在底部fieldset,有一个添加为朋友的超链接:

<a href="#" id="aaf">add as friend</a>
Run Code Online (Sandbox Code Playgroud)

现在我想使用jquery $post()方法与另一个页面进行交互.我在该用户中也有一个隐藏字段,fieldset它具有用户id值.现在,当我使用创建点击功能时jquery,我无法访问不同的隐藏字段值.现在我想知道如何实现这个功能?为了检查我是否可以在一组代码中获取隐藏字段的值,我这样做了.

$(document).ready(function () {
    $("a#aaf").bind('click', function () {
        alert($("#uid").val());
    });
});
Run Code Online (Sandbox Code Playgroud)

但我只是先获得价值fieldset,而不是其他价值.请指导我.

提前致谢.

编辑:如何在每个标签点击事件中获取它?我在这里添加更多代码,

<?php foreach($query->result() as $row){?>
<fieldset>
    <legend>
        <?php echo $row->firstname.' '.$row->lastname;?>
    </legend>
    <img src='<?php echo $row->profile_img_url;?>'/><br>
    <a href="#" id="aaf">add as friend</a>
    <input name="uid" type="hidden" value='<?php echo $row->uid;?>' id="uid">
</fieldset>
Run Code Online (Sandbox Code Playgroud)

gfi*_*ost 36

<a href="javascript:void(0)" class="aaf" id="users_id">add as a friend</a>
Run Code Online (Sandbox Code Playgroud)

在jquery上

$('.aaf').on("click",function(){
  var usersid =  $(this).attr("id");
  //post code
})
Run Code Online (Sandbox Code Playgroud)

//其他方法是使用data属性

<a href="javascript:void(0)" class="aaf" data-id="102" data-username="sample_username">add as a friend</a>
Run Code Online (Sandbox Code Playgroud)

在jquery上

$('.aaf').on("click",function(){
    var usersid =  $(this).data("id");
    var username = $(this).data("username");
})
Run Code Online (Sandbox Code Playgroud)

  • 注意.live()在最新的jQuery中折旧.请改用.on(). (2认同)

kar*_*m79 5

那是因为你的隐藏字段有重复的ID,所以jQuery只返回集合中的第一个.相反,给他们的课程,.uid并通过以下方式抓住他们:

var uids = $(".uid").map(function() {
    return this.value;
}).get();
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/karim79/FtcnJ/

编辑:说您的输出如下所示(通知,ID已更改为类)

<fieldset><legend>John Smith</legend>
<img src='foo.jpg'/><br>
<a href="#" class="aaf">add as friend</a>
<input name="uid" type="hidden" value='<?php echo $row->uid;?>' class="uid">
</fieldset>
Run Code Online (Sandbox Code Playgroud)

您可以将"uid"相对于所单击的锚定位,如下所示:

$("a.aaf").click(function() {
    alert($(this).next('.uid').val());
});
Run Code Online (Sandbox Code Playgroud)

重要提示:没有任何重复的ID.它们会引起问题.它们无效,糟糕,你不应该这样做.