2009-11-15 57 views
7
<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> 

$('#q li:last')。remove();不起作用。怎么了?如何使用Jquery删除最后的<li></li>?

+0

AC说:“让我们来点亮吧!” – jtbandes 2009-11-15 06:55:41

回答

15

如果你想删除里面#d最后li元素,你可以简单地使用:last选择它是直接父项(如果有多个项,则为ul元素),则可以使用:last-child选择器:

$('#q li:last-child').remove(); 
+0

$('#q li:last')。remove(); 不起作用,我不知道为什么。 – Steven 2009-11-15 07:58:56

+0

也许是因为你在同一个元素'#addquestion'上有两个点击函数,其中一个增加了'

  • ..
  • ',第二个函数立即删除它。 – Mottie 2009-11-15 15:09:01

    +0

    糟糕,我想说的是改变你的第二个函数:'$('#removequestion')。click(function(){$('#q li:last')。remove();}); – Mottie 2009-11-15 15:10:30

    4

    尝试:如果你想删除每一个最后li孩子的

    $('#q li:last').remove(); 
    

    var lis = $('#q ul').children(); // get all the children 
    $(lis.get(lis.length-1)).remove(); // remove the last one 
    
    +0

    它不起作用。它说“lis.get(lis.length-1).remove不是函数” – Steven 2009-11-15 07:13:18

    +0

    Oop,对不起。 UL。 – jtbandes 2009-11-15 07:16:23

    +0

    它仍然不起作用。错误信息是“lis.get(lis.length-1).remove不是函数” – Steven 2009-11-15 07:22:01

    相关问题