废话不多说了,这是我的源代码:
<script>
$(function(){
var num = document.getElementsByName("question_id[]").length;
    for (b=0;b<num ;b++ )
    {
var a = document.getElementsByName("answer_id["+b+"][]").length + 1;
        $("#add_exam_question_answer"+b.toString()).click(function(){
            if(a >= 1) {
               $("#add_exam_answer"+b+"").append('<div><label><div align="right">答案选项'+a+'<?php echo ($i+1);?>:</div></label><input name="exam_answer[]" type="text" size="100" class="text" value="">&nbsp;&nbsp;分数:<input name="exam_point[]" type="text" size="2" class="text" value=""><input name="answer_id[]" type="hidden" value="">-<a href="#" id="del-test" class="lj">删除</a><br/></div>');
               a++;
            }
        });
        $('#del-test').live('click',function(){
            $(this).parent().remove();
            a--;
        });
    }
});
</script><?php
$a = 0;
while ($exam_row = $dbmain->fetch_array($exam_result))
{
?>
<label><div align="right"><b>&nbsp;&nbsp;<?php echo ($a+1);?>.&nbsp;&nbsp;考试题目:</b></div></label><textarea name="exam_content[]" style="padding:3px; width:83%; margin-bottom:5px;"><?php echo($exam_row['content']);?></textarea>-<a onclick="return confirm('删除题目会将题目下的答案一齐删除。你确定删除吗?')" href="?do=delete_question&exam_question_id=<?php echo ($exam_row['exam_question_id']);?>" class="lj">删除</a><br/>
                        <div align="left" id="add_exam_answer<?php echo($a);?>">
<?php
$answer_array = get_exam_answerinfo($exam_row['exam_question_id']);//接收二维数组
for ($i=0;$i<count($answer_array);$i++)
{
?>
        <label><div align="right">答案选项<?php echo ($i+1);?>:</div></label><input name="exam_answer[<?php echo($a);?>][]" type="text" size="100" class="text" value="<?php echo ($answer_array[$i]['exam_answer']);?>">&nbsp;&nbsp;分数:<input name="exam_point[<?php echo($a);?>][]" type="text" size="2" class="text" value="<?php echo ($answer_array[$i]['exam_point']);?>"><input name="answer_id[<?php echo($a);?>][]" type="hidden" value="">-<a href="?do=delete_answer&id=<?php echo ($answer_array[$i]['id']);?>" class="lj">删除</a><br/>
<?php
}
?>                  </div>
        <label></label><a id="add_exam_question_answer<?php echo ($a);?>" href="#" class="lj"><b>增加答案选项</b></a><br/>
                <div style="height:15px;"><input name="question_id[]" type="hidden" value="" /></div>
<?php
$a = $a + 1;
}
?>为何红色部分的代码接收不到绿色部分代码的ID?求高人指点。最好能贴出源代码给以指示

解决方案 »

  1.   

    应该是php还没加载好页面~·你把js代码放到页面最下面试试~·
      

  2.   

    我怕源代码太多,这是简化后的代码:
    <script>
    $(function(){
       $("#add_exam_question_answer"+b.toString()).click(function(){
       if(a >= 1) {
       $("#add_exam_answer"+b+"").append('这是要追加的内容!');
       a++;
       }
       });
       }
    });
    </script>
    <?php
    for ($i=0;$i<count($answer_array);$i++) //$answer_array是一个不确定元素个数的数组
    {
    ?>
    <div align="left" id="add_exam_answer<?php echo($i);?>"></div>
    <a id="add_exam_question_answer<?php echo ($i);?>" href="#" class="lj"><b>增加答案选项</b></a>
    <?php
    }
    ?>
      

  3.   

    您老可能没明白我的意思,我在红色代码下面这里添加一条
            $("#add_exam_question_answer"+b.toString()).click(function(){
    alert("#add_exam_question_answer"+b.toString());  //刚添加的
    弹出的都是相同的值,b 的值是完全一样的,没有遍历。