views:

41

answers:

2

I want to remove the last <li></li>, below is the code:

<div id="q">
    <ul><li>
    <table><tr><td>Question 1</td><td><input type="text" name="question1" size="60" /></td></tr>
   <tr><td>Answer:</td><td><input type="text" name="answer1" size="8" /></td></tr>
    </li></ul>
</div>

<input class="btn" id="addquestion"  type="button"  value="Add Question" />
<input class="btn" id="removequestion"  type="button"  value="Remove Question" />
<script>


 $('#addquestion').click(function() {
 var $question_number = $('#q li').size() + 1;

   $html='<li><table><tr><td>Question '+$question_number+'</td><td><input type="text" name="question'+$question_number+'" size="60" /></td></tr>\
   <tr><td>Answer:</td><td><input type="text" name="answer'+$question_number+'" size="8" /></td></tr></li>';
  $('#q ul').append($html);
   });

  $('#addquestion').click(function() {
//$('#q li:last').remove();
}); 
</script>

When I comment out $('#q li:last').remove();, other part works fine. But if I remove comment, the code doesn't work at all. Any idea?

+1  A: 

I usually set up event handlers after the DOM has been loaded. ie, place them all within a $(document).ready() handler to avoid problems

looks like you have set up 2 click handlers. one adds the li and the other removes it ?? both will fire on a single click

Scott Evernden
at that point in time the elements are already accessible, no need for a document ready.
meder
+2  A: 

Um. Why is your add question removing a question?

Shouldn't removequestion remove the question?

$('#removequestion').click(function() {
    $('#q li:last').remove();
    return false;
});
meder