2011-07-26 51 views
0

我想要删除div旧图像,并使用最后一个孩子(jQuery)追加一个新的,但它不起作用,我得到一个新的图像旁边附加了旧的。 这里是jQuery代码为什么删除最后一个孩子不起作用?

$(function() { 

$('.iconWrapper span').click(function(e){ 
var kleur=$(this).attr('class'); 
     switch(kleur){ 
      case 'color1': 
      $("#div1 img:last-child").remove(); 
      alert($("#div1").html()); 
       $('#div1').append('<img src="color/color1.jpg">'); 
      break; 
      case 'color2': 
      $("#div1 img:last-child").remove(); 
       $('#div1').append('<img src="color/color2.jpg">'); 
      break; 
      case 'color3': 
      $("#div1 img:last-child").remove(); 
       $('#div1').append('<img src="color/color3.jpg">'); 
      break; 
     } 

     $('#hiddenimg').val(kleur); 
    e.preventDefault(); 

}); 

HTML代码::

<?php 
error_reporting('E_ALL'); 
ini_set('display_errors', 1); 
session_start(); 
$img=$_POST['img']; 
$_SESSION['img']=$img; 
?> 
<div class="iconWrapper"> 
    <ul class="color"> 
     <li> 
      <a href="#" title="Selecteer"><span class="color1"></span></a>        
     </li> 
     <li> 
      <a href="#" title="Selecteer "><span class="color2" ></span></a>        
     </li> 
     <li> 
      <a href="#" title="Selecteer"><span class="color3"></span></a>        
     </li> 
     <li> 
      <a href="#" title="Selecteer"><span class="color4"></span></a>        
     </li> 
    </ul> 
</div> 

<form method="post" action="step3.php">  
    <div id="div1" > 
     <?php if(isset($_SESSION['img'])){ 
      echo '<img src="' . $_SESSION['img'] . '" >' ; 
     } ?> 
     <input name="color" type="text" value="" id="hiddenimg" /> 
     <input name="submit" type="submit" value="Submit" /> 
    </div> 
</form> 
+1

也许你想关闭'div1'。 – pimvdb

+0

恕我直言'img'标签是需要关闭的标签。 – naveen

回答

4

你可以尝试jQuery的:过去的选择:link

您需要例如:

$("#div1 img:last").remove(); 

或更好的版本

$("#div1 img").filter(":last").remove(); 

我不知道,现在来测试,我希望这是你的工作的解决方案:)

(对不起,我的英语:“>)

+0

heyyyyyyyyy感谢更好的版本确实工作非常感谢 – Mary

+0

欢迎您,我很高兴能为您提供帮助:) – Briganti

0

你需要:last而不是:last-child

相关问题