javascript - jQuery 没有从 php for 循环中获取正确的值

标签 javascript php jquery

我在 php 中的 for 循环看起来像这样:

for ($i=1;$i<=10;$i++) {
 ?>
    <input type="hidden" class="ThisQuestion" id="GetQuestion-<?php echo $i; ?>" value="<?php echo $i; ?>" />
    <a href="javascript:void(0)" class="VerySmallFont">
          <div class="SelectNumberBox <?php echo $NumberBoxClass; ?>"><?php echo $i; ?></div>
    </a>

现在我想将 $i 的值从 php 提取到 Jquery。这是我在 JS 部分为此所做的 -

<script type="text/javascript" language="javascript">
 $(document).ready(function() {
     $(".VerySmallFont").click(function(){
         var $Parent              = $(this).parent();                       
         var ThisQuestionNumber   = $Parent.find('[id^="GetQuestion-]:first').val();  
         var TestID        = $("#GetTestID").val();
         var ShowCQ = '1';
         $.ajax( {
             type : 'GET',
             url:'getquestiondata.php',
             data : {TestID: TestID, ShowCQ: ShowCQ, ThisQuestionNumber: ThisQuestionNumber},
             success:function(data) {
                 $("#LoadingImage").hide();
                 $('#ShowQuestion').html(data);
             }
         });
     });
 });
</script>

我没有在我的 JS 中获取 var ThisQuestion 的值。我还尝试使用类 ThisQuestion 而不是 id 选择器 GetQuestion 但这也不起作用。我不确定我犯的错误是什么。

最佳答案

在查看您的标记时,您似乎指向了错误的元素。在您的 jquery 中,您指向父级。您应该指向前一个兄弟,这是隐藏的输入。

var hidden = $(this).prev(); // point the input
var ThisQuestionNumber = hidden.val();

完整:

<?php
for ($i=1;$i<=10;$i++) {
 ?>
    <input type="hidden" class="ThisQuestion" id="GetQuestion-<?php echo $i; ?>" value="<?php echo $i; ?>" />
    <a href="javascript:void(0)" class="VerySmallFont">
          <div class="SelectNumberBox <?php echo $NumberBoxClass; ?>"><?php echo $i; ?></div>
    </a>
<?php } ?>

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {

    $(".VerySmallFont").click(function(){

        var hidden = $(this).prev();
        var ThisQuestionNumber = hidden.val(); // point to the previous sibling
        var TestID = $("#GetTestID").val();
        var ShowCQ = '1';
        $.ajax({
            type : 'GET',
            url:'getquestiondata.php',
            data : {TestID: TestID, ShowCQ: ShowCQ, ThisQuestionNumber: ThisQuestionNumber},
            success:function(data) {
                $("#LoadingImage").hide();
                $('#ShowQuestion').html(data);
            }
        });
    });
});
</script>

Demo

关于javascript - jQuery 没有从 php for 循环中获取正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26033763/

相关文章:

javascript - 单击文本框时,文本框的边框应该是透明的

php - 在 php 和 vb.net 中加密和解密 AES 256

php - Vagrant 服务器没有出现?

php - HY093 在 PDO 中执行预备语句时出错

javascript - 让 Javascript 在弹出窗口中显示 HTML

javascript - Webpack 2 使用 System.import 进行代码分割 : Dependencies of dependencies

javascript - 如何从 get 中删除这个 ?url=

jquery - 删除具有特定 id 的元素..其中我的 id 来自 Angular 表达式

javascript - 使用 PHP 操作文件从 HTML 输入表单发布数据,无需刷新页面

javascript - 如何从父文档访问 iframe 中的元素?