为什么我的按钮只给了我表中第一列的值

时间:2016-03-21 12:15:44

标签: javascript php html

为什么我的按钮只给了我表中第一列的值,当我点击另一个按钮时它给我与第一列相同的输出。 这是显示表格中项目的代码

 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.

4 个答案:

答案 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>