我正在为文本框和下拉框创建循环...

foreach ($users as $user)
{
 echo '<div class="row">';
 echo '<input type="hidden" value="'.$user['uid'].'" id="userid"/>';
 echo '<input type="text" value="'.$user['username'].'" disabled id="username"/>';
 echo '<select name="site" id="site"> <option>Site A</option><option>Site B</option></select>';
 echo '<select name="role" id="role">';
foreach ($roles as $role)
    echo '<option>'.$role.'</option>';
    echo '</select>';
    echo '<input type="button" name="Change" id="Change" value="Change" onclick="getClick()">';
}


我的jQuery是

function getClick()
{
     var a=$("#username").val();
     alert(a);
}


现在的问题是,当我单击任何更改按钮时,我仅获得第一行的用户名...我如何获取每一行的用户名...

最佳答案

您应该使用类值而不是id,因为元素是在循环内创建的-元素的ID在文档中必须唯一。

因此将所有id更改为class

'<input type="hidden" value="'.$user['uid'].'" class="userid"/>'


还使用jQuery事件处理程序,而不是内联的事件处理程序

'<input type="button" name="Change" value="Change" class="change">'

jQuery(function(){
    $('.change').click(function(){
        var $this = $(this), $row = $this.closest('.row');
        var a=$row.find(".username").val();
        alert(a);
    })
})

关于php - 如何获得点击信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20119656/

10-12 00:05
查看更多