(美元).attr(“name");只对第一个元素有效


$(this).attr("name"); is working only for first element

<head>
  <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
  <script type="text/javascript">
    $(document).ready(function() {
        $('#btn_rhino_sub').click(function() {
        var id = $(this).attr("name");
        alert("" + id);
        switch (id) {
            case '1':
                window.location = "mrhino.php";
                break;
            case '2':
                window.location = "mrhino.php";
                break;
            case '3':
                window.location = "mrhino.php";
                break;
            case '4':
                window.location = "mrhino.php";
                break;
            }
        });
      });
  </script>
</head>
<body>
    <header>
        <a href="#" id="logo"><?php echo  " Welcome  " . $name ; ?></a>
        <div id="middle">Major Process</div>
        <nav>
            <a href="#" id="menu-icon"></a>
            <ul>
                <li>Click here for 
                    <a href="logout.php" class="a">logout</a>
                </li>
            </ul>
        </nav>
    </header>
    <section>
        <?php 
            $query = "SELECT * FROM major_process WHERE parent_process ='0'; ";
            $query_result = mysql_query($query,$link);
            $row_count = mysql_num_rows($query_result);
            while ($row = mysql_fetch_array($query_result, MYSQL_NUM)) {
                ?>
                    <input style="height:75px; width: 225px;"
                        type="button"
                        class="btn btn-success round"
                        name="<?php echo''.$row[0]; ?>"
                        id="btn_rhino_sub"
                        value="<?php echo''.$row[1]; ?>">
                <?php   
            }    
        ?>
    </section>
    ...
</body>

朋友们,在这段代码中,我从数据库中获取了process_id和进程名,并以进程id作为按钮的名称和进程名作为按钮的值显示在按钮中。在点击选项,我想得到的名称(即进程id从数据库获取)的按钮单击。所以在jQuery中,我有一个onclick事件,但onclick的第一个按钮单独的"Id"被警告,页面被重定向,而点击其他按钮不警告任何值或重定向,但值从DB提取。

您正在创建重复的id, HTML中的标识符必须是唯一的,这是预期的行为

在下面的例子中,我已经将btn_rhino_sub转换为一个CSS类,这样我们就可以使用类选择器(".class")
<input class="btn btn-success round btn_rhino_sub"  name="<?php echo''.$row[0]; ?>"value="<?php echo''.$row[1]; ?>" >
脚本

$('.btn_rhino_sub').click(function(){
    var id = $(this).attr("name");
});

但是,如果您想存储自定义值,则使用data-*前缀自定义标记,可以使用.data()

获取

id应该是唯一的,只有一个页面上的按钮。如果需要单击的按钮不止一个,则需要按类访问元素。

<button class="btn_rhino_sub" name="whateverName">

你需要把你的click事件修改成这样:

$('.btn_rhino_sub').click(function()
{
  var id = $(this).attr("name");
  //rest of your code