$(本).attr( “名称”);仅适用于第一个元素

时间:2015-05-28 03:42:30

标签: javascript php jquery

<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为按钮名称,进程名称为按钮的值。点击选项我想获得点击按钮的名称(即从DB获取的进程ID)。所以在jQuery中我有一个onclick事件但只有onclick的第一个按钮,“Id”被警告并且页面被重定向,而点击其他按钮不会提醒任何值或重定向,但值是从DB获取的。

2 个答案:

答案 0 :(得分:0)

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

使用类,此处在下面的示例中,我已将btn_rhino_sub转换为CSS类,以便我们可以使用Class Selector (".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");
});

但是,如果您想存储costom值,请使用data-*前缀的标签,可以使用.data()

获取

答案 1 :(得分:0)

对于页面上的一个按钮,ID应该是唯一的。如果需要单击多个按钮,则需要按类访问该元素。

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

您需要将点击事件更改为以下内容:

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