jQuery $ this并找到选择器无法正常工作

时间:2016-10-31 18:19:59

标签: php jquery

我在for循环中有一个onclick函数在PHP中。 当我点击特定的onclick功能时,我想显示特定的DIV。

这些是我的代码。

这是PHP代码

for($i = 1; $i < 10; $i++)
{
    echo '<a href onclick="get_number($i)">Get Number</a>';
    echo '<div class="ans_option_box" style="display:none">show this div</div>';
    echo '<br>';
}

这是jQuery代码

<script>
function get_number(id)
{
     $(this).find('.ans_option_box').show();
}
</script>

我真的想要,当我点击第5点onclick值。 DIV应显示在第5个值下。 提前谢谢!

2 个答案:

答案 0 :(得分:0)

您要展示的div不是<a>代码的子代,因此find()无法正常工作。您将不得不更改您的html或使用不同的jQuery函数。

你需要将echo '<a href onclick="get_number($i)">Get Number</a>';改为echo '<a href onclick="get_number(' . $i . ')">Get Number</a>';才能真正输出php。

答案 1 :(得分:0)

在这里,你有它的工作。您必须更改PHP代码才能正确显示$i

此外,我更改了jQuery选择器以按ID搜索项目,因为它更容易,效率更高。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Page</title>
  </head>
  <body>

    <?php
    for ($i = 1; $i < 10; $i++) {
      echo '<button onclick="get_number(' . $i . ')">Get Number</button>';
      echo '<div id="' . $i . '" class="ans_option_box" style="display:none">show this div</div>';
      echo '<br>';
    }
    ?>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
      function get_number(id)
      {
        $("#"+id).show();
      }
    </script>
  </body>
</html>
相关问题