jquery< a>标签点击事件

t30tvxxf  于 2022-12-22  发布在  jQuery
关注(0)|答案(3)|浏览(170)

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

<a href="#" id="aaf">add as friend</a>

现在我想使用jquery $post()方法与另一个页面交互。我在用户fieldset中还有一个隐藏字段,其中包含用户id值。现在,当我使用jquery创建一个单击功能时,我无法访问不同的隐藏字段值。现在我想知道如何实现此功能?为了检查我是否可以得到一组代码中隐藏字段的值,我这样做了。

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

但是我只得到了第一个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>
gcuhipw9

gcuhipw91#

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

在jquery上,

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

//其他方法是使用数据属性

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

关于jquery

$('.aaf').on("click",function(){
    var usersid =  $(this).data("id");
    var username = $(this).data("username");
})
3vpjnl9f

3vpjnl9f2#

这是因为隐藏字段有重复的ID,所以jQuery只返回集合中的第一个,而是给它们类,比如.uid,并通过以下方式获取它们:

var uids = $(".uid").map(function() {
    return this.value;
}).get();

演示:http://jsfiddle.net/karim79/FtcnJ/
EDIT:假设您的输出如下所示(注意,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>

您可以将相对于单击的锚点的"uid"作为目标,如下所示:

$("a.aaf").click(function() {
    alert($(this).next('.uid').val());
});

重要提示:不要有任何重复的ID。它们会导致问题。它们是 * 无效 坏 * 的,你不应该 * 这样做。

yh2wf1be

yh2wf1be3#

fieldset中的所有隐藏字段都使用相同的id,所以jquery只返回第一个,解决这个问题的一个方法是创建一个计数器变量,并将其连接到每个隐藏字段id。

相关问题