为什么我的按钮只给了我表中第一列的值,当我点击另一个按钮时它给我与第一列相同的输出。 这是显示表格中项目的代码
try {
while($row=$query->fetch(PDO::FETCH_NUM))
{
echo
'<tr>
<td ><div id="studID">'.$row[0].'</div></td>
<td>'.$row[1].'</td>
<td>'.$row[2].'</td>
<td>'.$row[3].'</td>
<td>
<button class="button active"
name="button"value="'.$row[0].'">view</button>
</td>
</tr>';
}
echo '</table>';
} catch(PDOException $e ){
echo "Error: ".$e;
}
这是我点击按钮时的编码
<script type="text/javascript">
$(".button").click(function(){
var id =$('.button').val();
alert (id);
});
</script>>
thanks in advance.
答案 0 :(得分:1)
使用如下所示的this
对象:
<script type="text/javascript">
$(".button").click(function(){
var id =$(this).val();
alert (id);
});
</script>>
答案 1 :(得分:0)
Click事件始终从dom获取第一个匹配元素。如果你想通过for()循环,每个循环,map函数得到所有按钮,或者你可以跟随下划线库。
答案 2 :(得分:0)
不要给你的按钮赋值,而是在点击功能中执行
$("td").each(function() {
var id = $('td').val();
alert(id);
});
这样它将遍历每个td元素并生成一个带有值的警报。或者你可以这样做:
var valueArray
$("td").each(function() {
var id = $('td').val();
valueArray.push(id);
});
alert(valueArray);
应该希望使用其中的所有值进行警报。
并为您的按钮执行:
<button class="button active" name="button">view</button>
但请记住,这将对您网页上的所有td元素执行此操作,因此,如果您有多个表,则会对您拥有的每个表中的每个td发出警报。为避免这种情况,请为表格提供ID,并将$("td")
替换为$("#tableID td")
。
答案 3 :(得分:-1)
您需要使用jQuery.each()函数遍历所有可用的类。在这里,您只获取第一个元素值。
您可以尝试以下内容:
<script type="text/javascript">
$(".button").click(function(){
$( ".button" ).each(function( index ) {
alert( $( this ).val() );
});
});
</script>