我想选择一行并获取警告框的用户名。所以我使用jquery选择器来完成这项任务。但不幸的是,jquery始终给出第一行数据。它的解决方案是什么?
这是我的html数据
<tabel>
<?php
while(!result){
?>
<tr>
<td><input type='hidden' name='edit' value = <?php $result['username'] ?> /> <button id='edit' value='edit' >Edit User</button>'<td>
</tr>
<?php
}
?>
</table>
var cmd = $('input[name=edit]').val();
alert('cmd');
What is the solution for it?
答案 0 :(得分:0)
首先将按钮的id="edit"
更改为class="edit"
,因为ID应该唯一使用。
示例html
<table>
<tr>
<td><input type='hidden' name='edit' value ='1' />
<button class='edit' value='edit' >Edit User</button>
</td>
</tr>
<tr>
<td><input type='hidden' name='edit' value ='2' />
<button class='edit' value='edit' >Edit User</button>
</td>
</tr>
<tr>
<td><input type='hidden' name='edit' value ='3' />
<button class='edit' value='edit' >Edit User</button>
</td>
</tr>
</table>
<强> Jquery的强>
// 使用prev()函数 阅读here
$('.edit').live('click',function(){
alert($(this).prev('input').val());
})
// <强> Or using parent() and find() function
强>
了解parent选择器
了解find选择器
$('.edit').live('click',function(){
alert($(this).parent().find('input').val());
})
小提琴here
答案 1 :(得分:0)
使用这样的代码。我已经格式化了你的代码,因为它有一些问题。
<强> HTML / PHP 强>
<table>
<?php
while(!$result){
?>
<tr>
<td>
<input type='hidden' name='edit' value = '<?php echo $result["username"]; ?>' />
<button id='edit' value='edit'>Edit User</button>
<td>
</tr>
<?php
}
?>
</table>
<强> JQUERY 强>
<script>
$("#edit").click(function(){
var cmd = $(this).prev('input').val();
alert(cmd);
});
</script>