jQuery没有从php for loop中获取正确的值

时间:2014-09-25 08:19:51

标签: 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>

现在我想从php中提取$i的值到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,但这也不起作用。我不确定我所犯的错误是什么。

1 个答案:

答案 0 :(得分:1)

看着你的标记后,你似乎指的是错误的元素。在你的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