我正在为文本框和下拉框创建循环...
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);
}
现在问题是,当我点击任何更改按钮时,我只能获得第一行的用户名...我怎样才能获得每行的用户名... < / p>
答案 0 :(得分:2)
修改下面给出的代码:
echo '<input type="text" value="'.$user['username'].'" disabled
id="username"'.$user['uid'].'"/>';
echo '<input type="button" name="Change" id="Change" value="Change"
onclick="getClick("'.$user['uid'].'")">';
的Javascript:
function getClick(userid)
{
var a=$("#username"+userid).val();
alert(a);
}
答案 1 :(得分:1)
您应该使用类值而不是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);
})
})